sh: fix INTC to use set_irq_chained_handler() for redirects
PATCH 1/1 sh: fix INTC to use set_irq_chained_handler() for redirects
From: Magnus Damm <[email protected]>
This patch updates the shared INTC code to use set_irq_chained_handler() for intc_redirect_irq().
With this in place request_irq() on a merged irq which has been redirected will now return -EINVAL instead of 0 together with a crash. This thanks to the protection of the IRQ_NOREQUEST flag set for chained interrupt handlers.
Signed-off-by Magnus Damm <[email protected]>
---
drivers/sh/intc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/sh/intc.c +2 -2
@@ -896,8 +896,8 @@ void __init register_intc_controller(str vect2->enum_id =0 ;/* redirect this interrupts to the first one */ -set_irq_chip_and_handler_name (irq2, &d->chip, - intc_redirect_irq,"redirect" ); +set_irq_chained_handler (irq2, intc_redirect_irq); +set_irq_chip (irq2, &d->chip);set_irq_data (irq2, (void *)irq); } }