[S390] Fix IRQ tracing.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Fri, 27 Jul 2007 10:29:18 +0000 (12:29 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 27 Jul 2007 10:29:19 +0000 (12:29 +0200)
commitb771aeac32a320ac52bc227252103d7d7fc48cad
treef52051b98e84c98d4b0dc5af2376030686103848
parent2b3d8c9e06392d5539aa5d652f3a3c385fd19333
[S390] Fix IRQ tracing.

If a machine check is pending and the external or I/O interrupt handler
returns to userspace io_mcck_pending is going to call s390_handle_mcck.
Before this happens a call to TRACE_IRQS_ON was already made since we
know that we are going back to userspace and hence interrupts will be
enabled. So there was an indication that interrupts are enabled while
in reality they are still disabled.
s390_handle_mcck will do a local_irq_save/restore pair and confuse
lockdep which later complains about inconsistent irq tracing.
To solve this just call trace_hardirqs_off before calling
s390_handle_mcck and trace_hardirqs_on afterwards.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S