net: allow out-of-order netdev unregistration
authorJakub Kicinski <kuba@kernel.org>
Tue, 15 Feb 2022 22:53:10 +0000 (14:53 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 17 Feb 2022 16:22:21 +0000 (08:22 -0800)
commitfaab39f63c1fc4bcdf135690f03bd596b578c67e
tree181a9c75669af333b939a5207274392ad6401f36
parentae68db14b6164ce46beffaf35eb7c9bb2f92fee3
net: allow out-of-order netdev unregistration

Sprinkle for each loops to allow netdevices to be unregistered
out of order, as their refs are released.

This prevents problems caused by dependencies between netdevs
which want to release references in their ->priv_destructor.
See commit d6ff94afd90b ("vlan: move dev_put into vlan_dev_uninit")
for example.

Eric has removed the only known ordering requirement in
commit c002496babfd ("Merge branch 'ipv6-loopback'")
so let's try this and see if anything explodes...

Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Xin Long <lucien.xin@gmail.com>
Link: https://lore.kernel.org/r/20220215225310.3679266-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c