diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-07-26 19:39:56 +0200 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2018-07-26 06:43:40 +0200 |
commit | 5ce5a1b7842aca286b8b67f90d7b941a20d79e6e (patch) | |
tree | e8199d18be80bd8b67892b9a380c42b9cc551c12 /kernel/sched | |
parent | 820b95fde0e124d5d5f2e6b83f4b5cad71acda2e (diff) | |
download | linux-rt-5ce5a1b7842aca286b8b67f90d7b941a20d79e6e.tar.gz |
rt: Add the preempt-rt lock replacement APIs
Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex
based locking functions for preempt-rt.
This also introduces RT's sleeping locks.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 8bfaefc437ec..c20065ecf6cd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -547,7 +547,7 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task) head->lastp = &node->next; } -void wake_up_q(struct wake_q_head *head) +void __wake_up_q(struct wake_q_head *head, bool sleeper) { struct wake_q_node *node = head->first; @@ -564,7 +564,10 @@ void wake_up_q(struct wake_q_head *head) * wake_up_process() implies a wmb() to pair with the queueing * in wake_q_add() so as not to miss wakeups. */ - wake_up_process(task); + if (sleeper) + wake_up_lock_sleeper(task); + else + wake_up_process(task); put_task_struct(task); } } |