diff options
author | Josh Triplett <josht@us.ibm.com> | 2006-10-04 02:17:11 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 07:55:30 -0700 |
commit | 2860aaba4dc87fa43c08724434b87a8650f3bff5 (patch) | |
tree | 5c9a4ec9c571352174cbe4fd8d7eb125f53e0c30 /kernel/rcutorture.c | |
parent | 3c29e03d9121e07714fb9e5303d9b026800ffd5a (diff) | |
download | linux-2860aaba4dc87fa43c08724434b87a8650f3bff5.tar.gz linux-2860aaba4dc87fa43c08724434b87a8650f3bff5.tar.bz2 linux-2860aaba4dc87fa43c08724434b87a8650f3bff5.zip |
[PATCH] rcu: Avoid kthread_stop on invalid pointer if rcutorture reader startup fails
rcu_torture_init kmallocs the array of reader threads, then creates each
one with kthread_run, cleaning up with rcu_torture_cleanup if this fails.
rcu_torture_cleanup calls kthread_stop on any non-NULL pointer in the
array; however, any readers after the one that failed to start up will have
invalid pointers, not null pointers. Avoid this by using kzalloc instead.
Signed-off-by: Josh Triplett <josh@freedesktop.org>
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/rcutorture.c')
-rw-r--r-- | kernel/rcutorture.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c index 021d3108bb6e..42e7f01e8003 100644 --- a/kernel/rcutorture.c +++ b/kernel/rcutorture.c @@ -780,7 +780,7 @@ rcu_torture_init(void) writer_task = NULL; goto unwind; } - reader_tasks = kmalloc(nrealreaders * sizeof(reader_tasks[0]), + reader_tasks = kzalloc(nrealreaders * sizeof(reader_tasks[0]), GFP_KERNEL); if (reader_tasks == NULL) { VERBOSE_PRINTK_ERRSTRING("out of memory"); |