On Friday, August 23, 2013 12:45:10 PM Colin Cross wrote: > Calling cpuidle_enter_state is expected to return with interrupts > enabled, but interrupts must be disabled before starting the > ready loop synchronization stage. Call local_irq_disable after > each call to cpuidle_enter_state for the safe state. > > CC: stable@xxxxxxxxxxxxxxx > Signed-off-by: Colin Cross <ccross@xxxxxxxxxxx> I've queued up all thress for 3.12, but I wonder what stable versions they should be included into? All of them or just a subset? Rafael > --- > drivers/cpuidle/coupled.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c > index 2a297f8..db92bcb 100644 > --- a/drivers/cpuidle/coupled.c > +++ b/drivers/cpuidle/coupled.c > @@ -460,6 +460,7 @@ int cpuidle_enter_state_coupled(struct cpuidle_device *dev, > } > entered_state = cpuidle_enter_state(dev, drv, > dev->safe_state_index); > + local_irq_disable(); > } > > /* Read barrier ensures online_count is read after prevent is cleared */ > @@ -485,6 +486,7 @@ retry: > > entered_state = cpuidle_enter_state(dev, drv, > dev->safe_state_index); > + local_irq_disable(); > } > > if (cpuidle_coupled_clear_pokes(dev->cpu)) { > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html