diff options
Diffstat (limited to 'arch/s390/kernel/process.c')
| -rw-r--r-- | arch/s390/kernel/process.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 3201ae447990..e795933eb2cb 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(); |
