aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/rtnetlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r--net/core/rtnetlink.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index bc290413a49d..257e7bbaffba 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -454,11 +454,11 @@ static void rtnl_lock_unregistering_all(void)
454void rtnl_link_unregister(struct rtnl_link_ops *ops) 454void rtnl_link_unregister(struct rtnl_link_ops *ops)
455{ 455{
456 /* Close the race with cleanup_net() */ 456 /* Close the race with cleanup_net() */
457 mutex_lock(&net_mutex); 457 down_write(&net_sem);
458 rtnl_lock_unregistering_all(); 458 rtnl_lock_unregistering_all();
459 __rtnl_link_unregister(ops); 459 __rtnl_link_unregister(ops);
460 rtnl_unlock(); 460 rtnl_unlock();
461 mutex_unlock(&net_mutex); 461 up_write(&net_sem);
462} 462}
463EXPORT_SYMBOL_GPL(rtnl_link_unregister); 463EXPORT_SYMBOL_GPL(rtnl_link_unregister);
464 464