diff options
author | 2020-12-04 18:01:22 +0100 | |
---|---|---|
committer | 2020-12-16 14:55:48 +0100 | |
commit | f0c7cf13a3d77b3c6071ab179b583435847747e9 (patch) | |
tree | 022196be0c6a0a17f56ca42797377a59a5b12881 /arch | |
parent | s390: always clear kernel stack backchain before calling functions (diff) | |
download | linux-f0c7cf13a3d77b3c6071ab179b583435847747e9.tar.gz linux-f0c7cf13a3d77b3c6071ab179b583435847747e9.tar.bz2 linux-f0c7cf13a3d77b3c6071ab179b583435847747e9.zip |
s390: make calls to TRACE_IRQS_OFF/TRACE_IRQS_ON balanced
In case of udelay CIF_IGNORE_IRQ is set. This leads to an unbalanced
call of TRACE_IRQS_OFF and TRACE_IRQS_ON. That is: from lockdep's
point of view TRACE_IRQS_ON is called one time too often.
This doesn't fix any real bug, just makes the calls balanced.
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/kernel/entry.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index aa445203f5a5..2cc338aa3f65 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -778,9 +778,9 @@ ENTRY(io_int_handler) mvc __PT_INT_CODE(12,%r11),__LC_SUBCHANNEL_ID xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11) xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) + TRACE_IRQS_OFF TSTMSK __LC_CPU_FLAGS,_CIF_IGNORE_IRQ jo .Lio_restore - TRACE_IRQS_OFF .Lio_loop: lgr %r2,%r11 # pass pointer to pt_regs lghi %r3,IO_INTERRUPT @@ -966,9 +966,9 @@ ENTRY(ext_int_handler) mvc __PT_INT_PARM_LONG(8,%r11),0(%r1) xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11) xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) + TRACE_IRQS_OFF TSTMSK __LC_CPU_FLAGS,_CIF_IGNORE_IRQ jo .Lio_restore - TRACE_IRQS_OFF lgr %r2,%r11 # pass pointer to pt_regs lghi %r3,EXT_INTERRUPT brasl %r14,do_IRQ |