summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Muckle <smuckle@codeaurora.org>2015-04-24 17:03:31 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:01:56 -0700
commit652e8bc905e20d43d35f13403c89a6589b9d5866 (patch)
tree89997bfe554665dbc6ae6470cde20c9c69685f7a
parent38f3da47d7ac04be3727f65f07558da26b2d4068 (diff)
sched: disable IRQs in update_min_max_capacity
IRQs must be disabled while locking runqueues since an interrupt may cause a runqueue lock to be acquired. CRs-fixed: 828598 Change-Id: Id66f2e25ed067fc4af028482db8c3abd3d10c20f Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
-rw-r--r--kernel/sched/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c38c2a05eb3d..b670bc883f91 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2326,8 +2326,10 @@ static void __update_min_max_capacity(void)
static void update_min_max_capacity(void)
{
+ unsigned long flags;
int i;
+ local_irq_save(flags);
for_each_possible_cpu(i)
raw_spin_lock(&cpu_rq(i)->lock);
@@ -2335,6 +2337,7 @@ static void update_min_max_capacity(void)
for_each_possible_cpu(i)
raw_spin_unlock(&cpu_rq(i)->lock);
+ local_irq_restore(flags);
}
/*