sched/idle, PPC: Remove redundant cpuidle_idle_call()
[deliverable/linux.git] / drivers / cpuidle / cpuidle-pseries.c
index 7ab564aa0b1c8c141e0b64f750592dc44bbbba3f..d4864892951b618cd3e2a42e2128078c97f8909c 100644 (file)
@@ -29,6 +29,7 @@ static struct cpuidle_state *cpuidle_state_table;
 
 static inline void idle_loop_prolog(unsigned long *in_purr)
 {
+       ppc64_runlatch_off();
        *in_purr = mfspr(SPRN_PURR);
        /*
         * Indicate to the HV that we are idle. Now would be
@@ -45,6 +46,10 @@ static inline void idle_loop_epilog(unsigned long in_purr)
        wait_cycles += mfspr(SPRN_PURR) - in_purr;
        get_lppaca()->wait_state_cycles = cpu_to_be64(wait_cycles);
        get_lppaca()->idle = 0;
+
+       if (irqs_disabled())
+               local_irq_enable();
+       ppc64_runlatch_on();
 }
 
 static int snooze_loop(struct cpuidle_device *dev,
This page took 0.028991 seconds and 5 git commands to generate.