aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpuidle/cpuidle-powernv.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-11-17 02:00:51 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2018-01-18 15:43:43 +1100
commitf1343d044629f11e7d63ef1a07edb1db585302e0 (patch)
treef0f5a7988f76febc47dd9c026db3c99275cf1ab7 /drivers/cpuidle/cpuidle-powernv.c
parentpowerpc: define __ARCH_IRQ_EXIT_IRQS_DISABLED (diff)
downloadlinux-dev-f1343d044629f11e7d63ef1a07edb1db585302e0.tar.xz
linux-dev-f1343d044629f11e7d63ef1a07edb1db585302e0.zip
cpuidle/powernv: avoid double irq enable coming out of idle
Since e1689795a7 ("cpuidle: Add common time keeping and irq enabling"), cpuidle drivers are expected to return from ->enter with irqs disabled. Update the cpuidle-powernv snooze loop to disable irqs before returning. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/cpuidle/cpuidle-powernv.c')
-rw-r--r--drivers/cpuidle/cpuidle-powernv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
index e06605b21841..1a8234e706bc 100644
--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -76,6 +76,8 @@ static int snooze_loop(struct cpuidle_device *dev,
ppc64_runlatch_on();
clear_thread_flag(TIF_POLLING_NRFLAG);
+ local_irq_disable();
+
return index;
}