summaryrefslogtreecommitdiff
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
authorTodd Kjos <tkjos@google.com>2016-07-04 15:04:45 +0100
committerAmit Pundir <amit.pundir@linaro.org>2016-09-14 15:02:22 +0530
commit923b7aa7f0e6e83a26be3d54db12060dc7651c09 (patch)
treeebf244db0e4b182d5987282f693e5680ad9c060d /kernel/sched/sched.h
parentabdb60d816bfd20b8d4f61c3e7c95a61ad12212a (diff)
FIXUP: sched: Fix double-release of spinlock in move_queued_task
BUG: 29519455 Change-Id: I4d1c27a1b4bcbba03d4b175d170cfe1701a90ffd
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r--kernel/sched/sched.h3
1 files changed, 2 insertions, 1 deletions
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_);
}