genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD
authorThomas Gleixner <tglx@linutronix.de>
Thu, 16 Jul 2015 12:10:17 +0000 (14:10 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 17 Jul 2015 09:29:34 +0000 (11:29 +0200)
commit75a06189fc508a2acf470b0b12710362ffb2c4b1
treeaf68b2120f3cba499cf8d26b6cd76cdbb1d302f2
parentce0d3c0a6fb1422101498ef378c0851dabbbf67f
genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD

The resend mechanism happily calls the interrupt handler of interrupts
which are marked IRQ_NESTED_THREAD from softirq context. This can
result in crashes because the interrupt handler is not the proper way
to invoke the device handlers. They must be invoked via
handle_nested_irq.

Prevent the resend even if the interrupt has no valid parent irq
set. Its better to have a lost interrupt than a crashing machine.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
kernel/irq/resend.c