]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
sched/__wake_up_sync_key(): Fix nr_exclusive tasks which lead to WF_SYNC clearing
authorKirill Tkhai <tkhai@yandex.ru>
Thu, 4 Jul 2013 18:48:20 +0000 (22:48 +0400)
committerIngo Molnar <mingo@kernel.org>
Fri, 12 Jul 2013 11:54:03 +0000 (13:54 +0200)
Only one task can replace the waker.

Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
CC: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/512421372963700@web25f.yandex.ru
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/core.c

index 0d8eb4525e7616953d1a0df16fd43bcf6fc4f0cc..f73787159188468de7b4929b27e627d4dfdd3732 100644 (file)
@@ -2660,7 +2660,7 @@ void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode,
        if (unlikely(!q))
                return;
 
-       if (unlikely(!nr_exclusive))
+       if (unlikely(nr_exclusive != 1))
                wake_flags = 0;
 
        spin_lock_irqsave(&q->lock, flags);