diff options
author | ckolivas <kernel@kolivas.org> | 2016-10-10 18:19:42 +1100 |
---|---|---|
committer | ckolivas <kernel@kolivas.org> | 2016-10-10 18:27:22 +1100 |
commit | 31a3fa87f4f02158bfb57b93ef0b69bf1c1ef9c5 (patch) | |
tree | 16813dd08aace27f1be286620f83a97dbef6ae49 | |
parent | 8d5ded85ef9200ec67bc1f8f5017815a73a9afd8 (diff) |
Lock pi_lock as well when migrating a task in finish_lock_switch.
-rw-r--r-- | kernel/sched/MuQSS.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c index 95063b5e5cc5..416924bc025c 100644 --- a/kernel/sched/MuQSS.c +++ b/kernel/sched/MuQSS.c @@ -698,6 +698,7 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev) raw_spin_unlock(&rq->lock); + raw_spin_lock(&prev->pi_lock); rq_lock(rq2); /* Check that someone else hasn't already queued prev */ if (likely(task_on_rq_migrating(prev) && !task_queued(prev))) { @@ -707,6 +708,7 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev) resched_if_idle(rq2); } rq_unlock(rq2); + raw_spin_unlock(&prev->pi_lock); local_irq_enable(); } else |