garp: remove last synchronize_rcu() call
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 12 May 2011 21:46:56 +0000 (17:46 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 May 2011 21:46:56 +0000 (17:46 -0400)
commitf607a158004d75c9005423ce1ba70dc6ec3dd9c2
tree87932db617f445111cb72f5fa0d8f4eaecc91b45
parente154b639bbe53dc91d1873cd37d162bb2fe87aab
garp: remove last synchronize_rcu() call

When removing last vlan from a device, garp_uninit_applicant() calls
synchronize_rcu() to make sure no user can still manipulate struct
garp_applicant before we free it.

Use call_rcu() instead, as a step to further net_device dismantle
optimizations.

Add the temporary garp_cleanup_module() function to make sure no pending
call_rcu() are left at module unload time [ this will be removed when
kfree_rcu() is available ]

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/garp.h
net/802/garp.c