Commit cbd9b67b authored by Dmitry Adamushko's avatar Dmitry Adamushko Committed by Linus Torvalds

kthread: call wake_up_process() without the lock being held

From the POV of synchronization, there should be no need to call
wake_up_process() with the 'kthread_create_lock' being held.
Signed-off-by: default avatarDmitry Adamushko <dmitry.adamushko@gmail.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a2d416dc
...@@ -144,9 +144,9 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), ...@@ -144,9 +144,9 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
spin_lock(&kthread_create_lock); spin_lock(&kthread_create_lock);
list_add_tail(&create.list, &kthread_create_list); list_add_tail(&create.list, &kthread_create_list);
wake_up_process(kthreadd_task);
spin_unlock(&kthread_create_lock); spin_unlock(&kthread_create_lock);
wake_up_process(kthreadd_task);
wait_for_completion(&create.done); wait_for_completion(&create.done);
if (!IS_ERR(create.result)) { if (!IS_ERR(create.result)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment