aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrivatsa Vaddagiri <vatsa@in.ibm.com>2005-12-12 03:37:06 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-12-12 11:57:42 -0500
commit89d46b8778f65223f732d82c0166e0abba20fb1e (patch)
tree2ea43a40659bbc30cf1bd6b48c7ee7c95714feb7
parentab4720ec76b756e1f8705e207a7b392b0453afd6 (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>
-rw-r--r--kernel/rcutorture.c3
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)
409 stats_task = NULL; 409 stats_task = NULL;
410 410
411 /* Wait for all RCU callbacks to fire. */ 411 /* Wait for all RCU callbacks to fire. */
412 rcu_barrier();
412 413
413 for (i = 0; i < RCU_TORTURE_PIPE_LEN; i++)
414 synchronize_rcu();
415 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */ 414 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
416 printk(KERN_ALERT TORTURE_FLAG 415 printk(KERN_ALERT TORTURE_FLAG
417 "--- End of test: %s\n", 416 "--- End of test: %s\n",