diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-08-23 08:45:58 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2013-08-28 03:19:23 -0400 |
commit | 0587d409ec53312f735d2004d5f47f8effee1ea9 (patch) | |
tree | 7ab956aaf3d7d238f8bd40a8f50d60302cb3363a /arch/s390/kernel/entry64.S | |
parent | 6b169ac9b4342ff3a1499bdeb7596aa4f1bc401b (diff) |
s390/time: return with irqs disabled from psw_idle
Modify the psw_idle waiting logic in entry[64].S to return with
interrupts disabled. This avoids potential issues with udelay
and interrupt loops as interrupts are not reenabled after
clock comparator interrupts.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r-- | arch/s390/kernel/entry64.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 980c7aa1cc5c..2b2188b97c6a 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -929,7 +929,7 @@ cleanup_idle: | |||
929 | stg %r9,__LC_SYSTEM_TIMER | 929 | stg %r9,__LC_SYSTEM_TIMER |
930 | mvc __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2) | 930 | mvc __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2) |
931 | # prepare return psw | 931 | # prepare return psw |
932 | nihh %r8,0xfffd # clear wait state bit | 932 | nihh %r8,0xfcfd # clear irq & wait state bits |
933 | lg %r9,48(%r11) # return from psw_idle | 933 | lg %r9,48(%r11) # return from psw_idle |
934 | br %r14 | 934 | br %r14 |
935 | cleanup_idle_insn: | 935 | cleanup_idle_insn: |