This bug should be fixed by the following patch: ---------------------- From: Kevin Hilman <[email protected]> Date: Wed, 30 Sep 2009 17:35:53 +0000 (-0700) Subject: CPUidle: always return with interrupts enabled
CPUidle: always return with interrupts enabled In the case where cpuidle_idle_call() returns before changing state due to a need_resched(), it was returning with IRQs disabled. This patch ensures IRQs are (re)enabled before returning. Reported-by: Hemanth V <[email protected]> Signed-off-by: Kevin Hilman <[email protected]> --- diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 8504a21..910c49d 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -75,8 +75,11 @@ static void cpuidle_idle_call(void) #endif /* ask the governor for the next state */ next_state = cpuidle_curr_governor->select(dev); - if (need_resched()) + if (need_resched()) { + local_irq_enable(); return; + } + target_state = &dev->states[next_state]; /* enter the state and update stats */ -- WARNING: at arch/arm/kernel/process.c:174 cpu_idle+0x8c/0xa0() https://bugs.launchpad.net/bugs/458533 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
