diff options
author | Sven Eckelmann <[email protected]> | 2010-09-18 21:01:14 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2010-09-20 16:29:48 -0700 |
commit | 67c3b705934af93a09a0f369346c2561499b73c4 (patch) | |
tree | 5dea1b9e38904b368bc768432f5864fd5eaf482a | |
parent | 2d77bb592f6cabc5ee5322c03ee92b9f96c45f60 (diff) |
Staging: batman-adv: wait for call_rcu before unloading module
synchronize_rcu respective synchronize_net only waits for the rcu grace
period to elapse and we may fail to finish the calls which were made to
call_rcu in that time. In result the module could be unloaded during the
execution of the RCU callbacks.
rcu_barrier[1] will now wait for all outstanding RCU callbacks to finish
before continuing.
[1] Documentation/RCU/rcubarrier.txt
Signed-off-by: Sven Eckelmann <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
-rw-r--r-- | drivers/staging/batman-adv/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/batman-adv/main.c b/drivers/staging/batman-adv/main.c index 78ceebf75449..580ca02fc705 100644 --- a/drivers/staging/batman-adv/main.c +++ b/drivers/staging/batman-adv/main.c @@ -72,7 +72,7 @@ static void __exit batman_exit(void) destroy_workqueue(bat_event_workqueue); bat_event_workqueue = NULL; - synchronize_net(); + rcu_barrier(); } int mesh_init(struct net_device *soft_iface) |