diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-09-15 13:14:42 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-09-15 13:47:22 -0400 |
commit | 63859d4fe4c97b737e7adbfe60acb1c2b2e668cb (patch) | |
tree | 72b52a9f76df953b43554bdc00404f20b9645ee4 | |
parent | a7558e01056f5191ff2ecff53b075dcb9e484188 (diff) |
sched: Fix sync wakeups again
The sync argument rename to introduce WF_* broke stuff by missing a
local alias for an argument in __wake_up_common, fix it by using
the more descriptive wake_flags name.
This restores WF_SYNC propagation, which fixes wake_affine()
behaviour, which fixes pipe-test.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | kernel/sched.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 0d4c4fea3317..af04ede6dd2f 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5564,10 +5564,10 @@ asmlinkage void __sched preempt_schedule_irq(void) | |||
5564 | 5564 | ||
5565 | #endif /* CONFIG_PREEMPT */ | 5565 | #endif /* CONFIG_PREEMPT */ |
5566 | 5566 | ||
5567 | int default_wake_function(wait_queue_t *curr, unsigned mode, int flags, | 5567 | int default_wake_function(wait_queue_t *curr, unsigned mode, int wake_flags, |
5568 | void *key) | 5568 | void *key) |
5569 | { | 5569 | { |
5570 | return try_to_wake_up(curr->private, mode, flags); | 5570 | return try_to_wake_up(curr->private, mode, wake_flags); |
5571 | } | 5571 | } |
5572 | EXPORT_SYMBOL(default_wake_function); | 5572 | EXPORT_SYMBOL(default_wake_function); |
5573 | 5573 | ||
@@ -5581,14 +5581,14 @@ EXPORT_SYMBOL(default_wake_function); | |||
5581 | * zero in this (rare) case, and we handle it by continuing to scan the queue. | 5581 | * zero in this (rare) case, and we handle it by continuing to scan the queue. |
5582 | */ | 5582 | */ |
5583 | static void __wake_up_common(wait_queue_head_t *q, unsigned int mode, | 5583 | static void __wake_up_common(wait_queue_head_t *q, unsigned int mode, |
5584 | int nr_exclusive, int flags, void *key) | 5584 | int nr_exclusive, int wake_flags, void *key) |
5585 | { | 5585 | { |
5586 | wait_queue_t *curr, *next; | 5586 | wait_queue_t *curr, *next; |
5587 | 5587 | ||
5588 | list_for_each_entry_safe(curr, next, &q->task_list, task_list) { | 5588 | list_for_each_entry_safe(curr, next, &q->task_list, task_list) { |
5589 | unsigned flags = curr->flags; | 5589 | unsigned flags = curr->flags; |
5590 | 5590 | ||
5591 | if (curr->func(curr, mode, flags, key) && | 5591 | if (curr->func(curr, mode, wake_flags, key) && |
5592 | (flags & WQ_FLAG_EXCLUSIVE) && !--nr_exclusive) | 5592 | (flags & WQ_FLAG_EXCLUSIVE) && !--nr_exclusive) |
5593 | break; | 5593 | break; |
5594 | } | 5594 | } |