From: Kirill Tkhai <ktk...@virtuozzo.com> Date: Fri, 30 Mar 2018 19:38:16 +0300
> there is wext_netdev_notifier_call()->wireless_nlevent_flush() > netdevice notifier, which takes net_rwsem, so we can't take > net_rwsem in {,un}register_netdevice_notifier(). > > Since {,un}register_netdevice_notifier() is executed under > pernet_ops_rwsem, net_namespace_list can't change, while we > holding it, so there is no need net_rwsem in these functions [1/2]. > > The same is in [2/2]. We make callers of __rtnl_link_unregister() > take pernet_ops_rwsem, and close the race with setup_net() > and cleanup_net(), so __rtnl_link_unregister() does not need it. > This also fixes the problem of that __rtnl_link_unregister() does > not see initializing and exiting nets. Series applied.