From: Jesper Dangaard Brouer Date: Mon, 8 Jun 2009 03:11:28 +0000 (+0000) Subject: 8021q: Vlan driver should use rcu_barrier() on unload instead of syncronize_net() X-Git-Tag: v2.6.31-rc1~330^2~70 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6e327c11a91d190650df9aabe7d3694d4838bfa1;p=~shefty%2Frdma-dev.git 8021q: Vlan driver should use rcu_barrier() on unload instead of syncronize_net() The VLAN 8021q driver needs to call rcu_barrier() when unloading the module, instead of syncronize_net(). This is needed to make sure that outstanding call_rcu() callbacks have completed, before the callback function code is removed on module unload. Signed-off-by: Jesper Dangaard Brouer Reviewed-by: Paul E. McKenney Acked-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 714e1c3536b..fe649081fbd 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -758,7 +758,7 @@ static void __exit vlan_cleanup_module(void) BUG_ON(!hlist_empty(&vlan_group_hash[i])); unregister_pernet_gen_device(vlan_net_id, &vlan_net_ops); - synchronize_net(); + rcu_barrier(); /* Wait for completion of call_rcu()'s */ vlan_gvrp_uninit(); }