diff options
author | Eric Dumazet <edumazet@google.com> | 2022-02-09 18:59:32 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-02-10 15:30:26 +0000 |
commit | ede6c39c4f9068cbeb4036448c45fff5393e0432 (patch) | |
tree | dbeb843af969bdd903410d4ea5351db041893058 /net/core/rtnetlink.c | |
parent | ca2d5f1ff05955da9506055e88c4bbb71da190f1 (diff) |
net: make net->dev_unreg_count atomic
Having to acquire rtnl from netdev_run_todo() for every dismantled
device is not desirable when/if rtnl is under stress.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r-- | net/core/rtnetlink.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 710da8a36729..a6fad3df42a8 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -459,7 +459,7 @@ static void rtnl_lock_unregistering_all(void) * setup_net() and cleanup_net() are not possible. */ for_each_net(net) { - if (net->dev_unreg_count > 0) { + if (atomic_read(&net->dev_unreg_count) > 0) { unregistering = true; break; } |