aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/process.c')
-rw-r--r--arch/s390/kernel/process.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 9f3dff6c0b72..66ca5757e368 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -102,7 +102,6 @@ void default_idle(void)
102 local_irq_disable(); 102 local_irq_disable();
103 if (need_resched()) { 103 if (need_resched()) {
104 local_irq_enable(); 104 local_irq_enable();
105 schedule();
106 return; 105 return;
107 } 106 }
108 107
@@ -139,8 +138,14 @@ void default_idle(void)
139 138
140void cpu_idle(void) 139void cpu_idle(void)
141{ 140{
142 for (;;) 141 for (;;) {
143 default_idle(); 142 while (!need_resched())
143 default_idle();
144
145 preempt_enable_no_resched();
146 schedule();
147 preempt_disable();
148 }
144} 149}
145 150
146void show_regs(struct pt_regs *regs) 151void show_regs(struct pt_regs *regs)