From 3b785828f6580af3fa3985a1dd40c38b99ef32db Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Fri, 16 Feb 2018 22:49:50 +1100 Subject: [PATCH] Fix locking for yield_to to work correctly with shared runqueues. --- kernel/sched/MuQSS.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c index 72221359ac37..e0b1f110b21c 100644 --- a/kernel/sched/MuQSS.c +++ b/kernel/sched/MuQSS.c @@ -339,7 +339,7 @@ static inline void __double_rq_lock(struct rq *rq1, struct rq *rq2) __acquires(rq1->lock) __acquires(rq2->lock) { - if (rq1->lock < rq2->lock) { + if (rq1 < rq2) { raw_spin_lock(rq1->lock); raw_spin_lock_nested(rq2->lock, SINGLE_DEPTH_NESTING); } else { @@ -372,7 +372,7 @@ static inline void double_rq_unlock(struct rq *rq1, struct rq *rq2) __releases(rq2->lock) { raw_spin_unlock(rq1->lock); - if (rq1 != rq2) + if (rq1->lock != rq2->lock) raw_spin_unlock(rq2->lock); else __release(rq2->lock); -- 2.14.1