diff --git a/net/core/dev.c b/net/core/dev.c index bcb05cb799c11ff4373ca112b3c3b62a46d55ad2..ec11d757c1fc2a87221afb50490eb1a8117aac66 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5954,7 +5954,10 @@ EXPORT_SYMBOL(free_netdev); void synchronize_net(void) { might_sleep(); - synchronize_rcu(); + if (rtnl_is_locked()) + synchronize_rcu_expedited(); + else + synchronize_rcu(); } EXPORT_SYMBOL(synchronize_net);