提交 2860aaba 编写于 作者: J Josh Triplett 提交者: Linus Torvalds

[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: NJosh Triplett <josh@freedesktop.org>
Acked-by: NPaul E. McKenney <paulmck@us.ibm.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 3c29e03d
...@@ -780,7 +780,7 @@ rcu_torture_init(void) ...@@ -780,7 +780,7 @@ rcu_torture_init(void)
writer_task = NULL; writer_task = NULL;
goto unwind; goto unwind;
} }
reader_tasks = kmalloc(nrealreaders * sizeof(reader_tasks[0]), reader_tasks = kzalloc(nrealreaders * sizeof(reader_tasks[0]),
GFP_KERNEL); GFP_KERNEL);
if (reader_tasks == NULL) { if (reader_tasks == NULL) {
VERBOSE_PRINTK_ERRSTRING("out of memory"); VERBOSE_PRINTK_ERRSTRING("out of memory");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册