diff options
author | Jesper Dangaard Brouer <hawk@comx.dk> | 2009-06-08 03:11:28 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-10 01:11:22 -0700 |
commit | 6e327c11a91d190650df9aabe7d3694d4838bfa1 (patch) | |
tree | 14e1df4f759109548dea22372ad971624e23b8ab /net | |
parent | 1abb0de2f89c1f9c454c973356b9e4867722f10a (diff) | |
download | kernel-common-6e327c11a91d190650df9aabe7d3694d4838bfa1.tar.gz kernel-common-6e327c11a91d190650df9aabe7d3694d4838bfa1.tar.bz2 kernel-common-6e327c11a91d190650df9aabe7d3694d4838bfa1.zip |
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 <hawk@comx.dk>
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/8021q/vlan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 714e1c3536be..fe649081fbdc 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(); } |