From: Josh Triplett 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 --- kernel/rcutorture.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/rcutorture.c~rcu-avoid-kthread_stop-on-invalid-pointer-if-rcutorture kernel/rcutorture.c --- a/kernel/rcutorture.c~rcu-avoid-kthread_stop-on-invalid-pointer-if-rcutorture +++ a/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"); _