summaryrefslogtreecommitdiffstats
path: root/drivers/cpuidle/cpuidle.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpuidle/cpuidle.c')
-rw-r--r--drivers/cpuidle/cpuidle.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 4d534582514e..b573f584b15a 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -117,6 +117,8 @@ static void enter_freeze_proper(struct cpuidle_driver *drv,
* If there are states with the ->enter_freeze callback, find the deepest of
* them and enter it with frozen tick. Otherwise, find the deepest state
* available and enter it normally.
+ *
+ * Returns with enabled interrupts.
*/
void cpuidle_enter_freeze(void)
{
@@ -132,6 +134,7 @@ void cpuidle_enter_freeze(void)
index = cpuidle_find_deepest_state(drv, dev, true);
if (index >= 0) {
enter_freeze_proper(drv, dev, index);
+ local_irq_enable();
return;
}
@@ -144,9 +147,6 @@ void cpuidle_enter_freeze(void)
cpuidle_enter(drv, dev, index);
else
arch_cpu_idle();
-
- /* Interrupts are enabled again here. */
- local_irq_disable();
}
/**