|
@@ -69,10 +69,15 @@ void cpu_idle(void)
|
|
smp_mb();
|
|
smp_mb();
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
|
|
|
|
|
|
+ /* Don't trace irqs off for idle */
|
|
|
|
+ stop_critical_timings();
|
|
|
|
+
|
|
/* check again after disabling irqs */
|
|
/* check again after disabling irqs */
|
|
if (!need_resched() && !cpu_should_die())
|
|
if (!need_resched() && !cpu_should_die())
|
|
ppc_md.power_save();
|
|
ppc_md.power_save();
|
|
|
|
|
|
|
|
+ start_critical_timings();
|
|
|
|
+
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
set_thread_flag(TIF_POLLING_NRFLAG);
|
|
set_thread_flag(TIF_POLLING_NRFLAG);
|
|
|
|
|