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.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 3201ae44799..e795933eb2c 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -29,7 +29,6 @@
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/timer.h> 30#include <asm/timer.h>
31#include <asm/nmi.h> 31#include <asm/nmi.h>
32#include <asm/compat.h>
33#include <asm/smp.h> 32#include <asm/smp.h>
34#include "entry.h" 33#include "entry.h"
35 34
@@ -76,7 +75,6 @@ static void default_idle(void)
76 if (test_thread_flag(TIF_MCCK_PENDING)) { 75 if (test_thread_flag(TIF_MCCK_PENDING)) {
77 local_mcck_enable(); 76 local_mcck_enable();
78 local_irq_enable(); 77 local_irq_enable();
79 s390_handle_mcck();
80 return; 78 return;
81 } 79 }
82 trace_hardirqs_on(); 80 trace_hardirqs_on();
@@ -93,10 +91,12 @@ void cpu_idle(void)
93 for (;;) { 91 for (;;) {
94 tick_nohz_idle_enter(); 92 tick_nohz_idle_enter();
95 rcu_idle_enter(); 93 rcu_idle_enter();
96 while (!need_resched()) 94 while (!need_resched() && !test_thread_flag(TIF_MCCK_PENDING))
97 default_idle(); 95 default_idle();
98 rcu_idle_exit(); 96 rcu_idle_exit();
99 tick_nohz_idle_exit(); 97 tick_nohz_idle_exit();
98 if (test_thread_flag(TIF_MCCK_PENDING))
99 s390_handle_mcck();
100 preempt_enable_no_resched(); 100 preempt_enable_no_resched();
101 schedule(); 101 schedule();
102 preempt_disable(); 102 preempt_disable();