summaryrefslogtreecommitdiff
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index d652ea66e575..3924a4af68b8 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -11629,6 +11629,7 @@ void unregister_netdevice_many_notify(struct list_head *head,
rtnl_drop_if_cleanup_net();
flush_all_backlogs();
rtnl_acquire_if_cleanup_net();
+ /* TODO: move this before the prior rtnl_acquire_if_cleanup_net() */
synchronize_net();
list_for_each_entry(dev, head, unreg_list) {
@@ -11689,7 +11690,9 @@ void unregister_netdevice_many_notify(struct list_head *head,
#endif
}
+ rtnl_drop_if_cleanup_net();
synchronize_net();
+ rtnl_acquire_if_cleanup_net();
list_for_each_entry(dev, head, unreg_list) {
netdev_put(dev, &dev->dev_registered_tracker);