* [PATCH net-next] net: get rid of rtnl_lock_unregistering()
@ 2022-02-18 17:58 Eric Dumazet
2022-02-19 16:40 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: Eric Dumazet @ 2022-02-18 17:58 UTC (permalink / raw)
To: David S . Miller, Jakub Kicinski; +Cc: netdev, Eric Dumazet, Eric Dumazet
From: Eric Dumazet <edumazet@google•com>
After recent patches, and in particular commits
faab39f63c1f ("net: allow out-of-order netdev unregistration") and
e5f80fcf869a ("ipv6: give an IPv6 dev to blackhole_netdev")
we no longer need the barrier implemented in rtnl_lock_unregistering().
Signed-off-by: Eric Dumazet <edumazet@google•com>
---
net/core/dev.c | 42 ------------------------------------------
1 file changed, 42 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index acd884910e12a040841e1e0525e0d4bc5e3ee799..a1190291c48e6cdb7fd20916793f72e2aac668cc 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -10884,36 +10884,6 @@ static void __net_exit default_device_exit_net(struct net *net)
}
}
-static void __net_exit rtnl_lock_unregistering(struct list_head *net_list)
-{
- /* Return (with the rtnl_lock held) when there are no network
- * devices unregistering in any network namespace in net_list.
- */
- DEFINE_WAIT_FUNC(wait, woken_wake_function);
- bool unregistering;
- struct net *net;
-
- ASSERT_RTNL();
- add_wait_queue(&netdev_unregistering_wq, &wait);
- for (;;) {
- unregistering = false;
-
- list_for_each_entry(net, net_list, exit_list) {
- if (atomic_read(&net->dev_unreg_count) > 0) {
- unregistering = true;
- break;
- }
- }
- if (!unregistering)
- break;
- __rtnl_unlock();
-
- wait_woken(&wait, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT);
- rtnl_lock();
- }
- remove_wait_queue(&netdev_unregistering_wq, &wait);
-}
-
static void __net_exit default_device_exit_batch(struct list_head *net_list)
{
/* At exit all network devices most be removed from a network
@@ -10930,18 +10900,6 @@ static void __net_exit default_device_exit_batch(struct list_head *net_list)
default_device_exit_net(net);
cond_resched();
}
- /* To prevent network device cleanup code from dereferencing
- * loopback devices or network devices that have been freed
- * wait here for all pending unregistrations to complete,
- * before unregistring the loopback device and allowing the
- * network namespace be freed.
- *
- * The netdev todo list containing all network devices
- * unregistrations that happen in default_device_exit_batch
- * will run in the rtnl_unlock() at the end of
- * default_device_exit_batch.
- */
- rtnl_lock_unregistering(net_list);
list_for_each_entry(net, net_list, exit_list) {
for_each_netdev_reverse(net, dev) {
--
2.35.1.473.g83b2b277ed-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net-next] net: get rid of rtnl_lock_unregistering()
2022-02-18 17:58 [PATCH net-next] net: get rid of rtnl_lock_unregistering() Eric Dumazet
@ 2022-02-19 16:40 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-02-19 16:40 UTC (permalink / raw)
To: Eric Dumazet; +Cc: davem, kuba, netdev, edumazet
Hello:
This patch was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft•net>:
On Fri, 18 Feb 2022 09:58:56 -0800 you wrote:
> From: Eric Dumazet <edumazet@google•com>
>
> After recent patches, and in particular commits
> faab39f63c1f ("net: allow out-of-order netdev unregistration") and
> e5f80fcf869a ("ipv6: give an IPv6 dev to blackhole_netdev")
> we no longer need the barrier implemented in rtnl_lock_unregistering().
>
> [...]
Here is the summary with links:
- [net-next] net: get rid of rtnl_lock_unregistering()
https://git.kernel.org/netdev/net-next/c/8a4fc54b07d7
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-02-19 16:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-18 17:58 [PATCH net-next] net: get rid of rtnl_lock_unregistering() Eric Dumazet
2022-02-19 16:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox