From: Josh Triplett Date: Wed, 4 Oct 2006 09:17:11 +0000 (-0700) Subject: [PATCH] rcu: Avoid kthread_stop on invalid pointer if rcutorture reader startup fails X-Git-Tag: v2.6.19-rc1~51 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2860aaba4dc87fa43c08724434b87a8650f3bff5;p=linux-2.6 [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 Acked-by: Paul E. McKenney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c index 021d3108bb..42e7f01e80 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");