diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-11-30 18:04:00 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2012-03-01 04:28:04 -0500 |
commit | 63b2001169e75cd71e917ec953fdab572e3f944a (patch) | |
tree | 3338725751540571a7d490b252f1b450554a6847 /kernel/sched | |
parent | ba74c1448f127649046615ec017bded7b2a76f29 (diff) |
sched/wait: Add __wake_up_all_locked() API
For code which protects the waitqueue itself with another lock it
makes no sense to acquire the waitqueue lock for wakeup all. Provide
__wake_up_all_locked().
This is an optimization on the vanilla kernel (to be used by the
PCI code) and an important semantic distinction on -rt.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-ux6m4b8jonb9inx8xafh77ds@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 643cc37fcb23..820f7453fda9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3418,9 +3418,9 @@ EXPORT_SYMBOL(__wake_up); | |||
3418 | /* | 3418 | /* |
3419 | * Same as __wake_up but called with the spinlock in wait_queue_head_t held. | 3419 | * Same as __wake_up but called with the spinlock in wait_queue_head_t held. |
3420 | */ | 3420 | */ |
3421 | void __wake_up_locked(wait_queue_head_t *q, unsigned int mode) | 3421 | void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr) |
3422 | { | 3422 | { |
3423 | __wake_up_common(q, mode, 1, 0, NULL); | 3423 | __wake_up_common(q, mode, nr, 0, NULL); |
3424 | } | 3424 | } |
3425 | EXPORT_SYMBOL_GPL(__wake_up_locked); | 3425 | EXPORT_SYMBOL_GPL(__wake_up_locked); |
3426 | 3426 | ||