diff options
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 054a6012de99..d48408142503 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -969,14 +969,6 @@ static struct rq *task_rq_lock(struct task_struct *p, unsigned long *flags) | |||
| 969 | } | 969 | } |
| 970 | } | 970 | } |
| 971 | 971 | ||
| 972 | void task_rq_unlock_wait(struct task_struct *p) | ||
| 973 | { | ||
| 974 | struct rq *rq = task_rq(p); | ||
| 975 | |||
| 976 | smp_mb(); /* spin-unlock-wait is not a full memory barrier */ | ||
| 977 | raw_spin_unlock_wait(&rq->lock); | ||
| 978 | } | ||
| 979 | |||
| 980 | static void __task_rq_unlock(struct rq *rq) | 972 | static void __task_rq_unlock(struct rq *rq) |
| 981 | __releases(rq->lock) | 973 | __releases(rq->lock) |
| 982 | { | 974 | { |
| @@ -4062,6 +4054,23 @@ int __sched wait_for_completion_killable(struct completion *x) | |||
| 4062 | EXPORT_SYMBOL(wait_for_completion_killable); | 4054 | EXPORT_SYMBOL(wait_for_completion_killable); |
| 4063 | 4055 | ||
| 4064 | /** | 4056 | /** |
| 4057 | * wait_for_completion_killable_timeout: - waits for completion of a task (w/(to,killable)) | ||
| 4058 | * @x: holds the state of this particular completion | ||
| 4059 | * @timeout: timeout value in jiffies | ||
| 4060 | * | ||
| 4061 | * This waits for either a completion of a specific task to be | ||
| 4062 | * signaled or for a specified timeout to expire. It can be | ||
| 4063 | * interrupted by a kill signal. The timeout is in jiffies. | ||
| 4064 | */ | ||
| 4065 | unsigned long __sched | ||
| 4066 | wait_for_completion_killable_timeout(struct completion *x, | ||
| 4067 | unsigned long timeout) | ||
| 4068 | { | ||
| 4069 | return wait_for_common(x, timeout, TASK_KILLABLE); | ||
| 4070 | } | ||
| 4071 | EXPORT_SYMBOL(wait_for_completion_killable_timeout); | ||
| 4072 | |||
| 4073 | /** | ||
| 4065 | * try_wait_for_completion - try to decrement a completion without blocking | 4074 | * try_wait_for_completion - try to decrement a completion without blocking |
| 4066 | * @x: completion structure | 4075 | * @x: completion structure |
| 4067 | * | 4076 | * |
