diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2007-11-20 05:13:32 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-11-20 05:13:45 -0500 |
commit | 411788ea7fca01ee803af8225ac35807b4d02050 (patch) | |
tree | a9704a068513b438bbe33b219ef9f6c29be01918 /include/asm-s390 | |
parent | 7aa8dac7ac68f5c2293e2ecf5ef542aa849f541f (diff) |
[S390] Fix irq tracing and lockdep_sys_exit calls.
Current support for TRACE_IRQFLAGS and lockdep_sys_exit is broken.
IRQ flag tracing is broken for program checks. Even worse is that
the newly introduced calls to lockdep_sys_exit are in the critical
section code which is not supposed to call any C functions. In
addition the checks if locks are still held are also done when
returning to kernel code which is broken as well.
Fix all this by disabling interrupts and machine checks at the
exit paths and then do the appropriate checks and calls.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'include/asm-s390')
-rw-r--r-- | include/asm-s390/system.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index d866d3385556..44bda786eef7 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
@@ -388,6 +388,11 @@ extern void (*_machine_power_off)(void); | |||
388 | 388 | ||
389 | #define arch_align_stack(x) (x) | 389 | #define arch_align_stack(x) (x) |
390 | 390 | ||
391 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
392 | extern psw_t sysc_restore_trace_psw; | ||
393 | extern psw_t io_restore_trace_psw; | ||
394 | #endif | ||
395 | |||
391 | #endif /* __KERNEL__ */ | 396 | #endif /* __KERNEL__ */ |
392 | 397 | ||
393 | #endif | 398 | #endif |