aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/idle.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc64/kernel/idle.c')
-rw-r--r--arch/ppc64/kernel/idle.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/idle.c b/arch/ppc64/kernel/idle.c
index 8fec27469802..909ea669af91 100644
--- a/arch/ppc64/kernel/idle.c
+++ b/arch/ppc64/kernel/idle.c
@@ -61,7 +61,9 @@ void default_idle(void)
61 } 61 }
62 62
63 ppc64_runlatch_on(); 63 ppc64_runlatch_on();
64 preempt_enable_no_resched();
64 schedule(); 65 schedule();
66 preempt_disable();
65 if (cpu_is_offline(cpu) && system_state == SYSTEM_RUNNING) 67 if (cpu_is_offline(cpu) && system_state == SYSTEM_RUNNING)
66 cpu_die(); 68 cpu_die();
67 } 69 }
@@ -77,7 +79,9 @@ void native_idle(void)
77 79
78 if (need_resched()) { 80 if (need_resched()) {
79 ppc64_runlatch_on(); 81 ppc64_runlatch_on();
82 preempt_enable_no_resched();
80 schedule(); 83 schedule();
84 preempt_disable();
81 } 85 }
82 86
83 if (cpu_is_offline(smp_processor_id()) && 87 if (cpu_is_offline(smp_processor_id()) &&