diff options
author | ckolivas <kernel@kolivas.org> | 2016-10-10 18:19:42 +1100 |
---|---|---|
committer | ckolivas <kernel@kolivas.org> | 2016-10-10 18:19:42 +1100 |
commit | f9c025106db10256061200abcf9a6cae833150b4 (patch) | |
tree | eb929e6c19973dbee4d32a9034fe6bf38999590e | |
parent | ab2f55039b9d1550d496299d5626eefcd8617d2f (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 0de7d747df58..032bddac881e 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 |