From: Todd Kjos Date: Mon, 4 Jul 2016 14:04:45 +0000 (+0100) Subject: FIXUP: sched: Fix double-release of spinlock in move_queued_task X-Git-Tag: firefly_0821_release~176^2~205 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=923b7aa7f0e6e83a26be3d54db12060dc7651c09;p=firefly-linux-kernel-4.4.55.git FIXUP: sched: Fix double-release of spinlock in move_queued_task BUG: 29519455 Change-Id: I4d1c27a1b4bcbba03d4b175d170cfe1701a90ffd --- diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 0b1bd6e8e1c8..b2d8ad59f41f 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1832,7 +1832,8 @@ static inline int double_lock_balance(struct rq *this_rq, struct rq *busiest) static inline void double_unlock_balance(struct rq *this_rq, struct rq *busiest) __releases(busiest->lock) { - raw_spin_unlock(&busiest->lock); + if (this_rq != busiest) + raw_spin_unlock(&busiest->lock); lock_set_subclass(&this_rq->lock.dep_map, 0, _RET_IP_); }