diff options
author | Srivatsa Vaddagiri | 2005-12-12 00:37:06 -0800 |
---|---|---|
committer | Linus Torvalds | 2005-12-12 08:57:42 -0800 |
commit | 89d46b8778f65223f732d82c0166e0abba20fb1e (patch) | |
tree | 2ea43a40659bbc30cf1bd6b48c7ee7c95714feb7 /kernel | |
parent | ab4720ec76b756e1f8705e207a7b392b0453afd6 (diff) |
[PATCH] Fix bug in RCU torture test
While doing some test of RCU torture module, I hit a OOPS in rcu_do_batch,
which was trying to processes callback of a module that was just removed.
This is because we weren't waiting long enough for all callbacks to fire.
Signed-off-by: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: Dipankar Sarma <dipankar@in.ibm.com>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/rcutorture.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c index 88c28d476550..49fbbeff201c 100644 --- a/kernel/rcutorture.c +++ b/kernel/rcutorture.c @@ -409,9 +409,8 @@ rcu_torture_cleanup(void) stats_task = NULL; /* Wait for all RCU callbacks to fire. */ + rcu_barrier(); - for (i = 0; i < RCU_TORTURE_PIPE_LEN; i++) - synchronize_rcu(); rcu_torture_stats_print(); /* -After- the stats thread is stopped! */ printk(KERN_ALERT TORTURE_FLAG "--- End of test: %s\n", |