diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index fcaed6b96442..328a67c55287 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5809,6 +5809,17 @@ void complete_all(struct completion *x) | |||
5809 | } | 5809 | } |
5810 | EXPORT_SYMBOL(complete_all); | 5810 | EXPORT_SYMBOL(complete_all); |
5811 | 5811 | ||
5812 | void complete_n(struct completion *x, int n) | ||
5813 | { | ||
5814 | unsigned long flags; | ||
5815 | |||
5816 | spin_lock_irqsave(&x->wait.lock, flags); | ||
5817 | x->done += n; | ||
5818 | __wake_up_common(&x->wait, TASK_NORMAL, n, 0, NULL); | ||
5819 | spin_unlock_irqrestore(&x->wait.lock, flags); | ||
5820 | } | ||
5821 | EXPORT_SYMBOL(complete_n); | ||
5822 | |||
5812 | static inline long __sched | 5823 | static inline long __sched |
5813 | do_wait_for_common(struct completion *x, long timeout, int state) | 5824 | do_wait_for_common(struct completion *x, long timeout, int state) |
5814 | { | 5825 | { |