sh: fix INTC to use set_irq_chained_handler() for redirects
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 <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -896,8 +896,8 @@ void __init register_intc_controller(struct intc_desc *desc)
|
|||||||
vect2->enum_id = 0;
|
vect2->enum_id = 0;
|
||||||
|
|
||||||
/* redirect this interrupts to the first one */
|
/* redirect this interrupts to the first one */
|
||||||
set_irq_chip_and_handler_name(irq2, &d->chip,
|
set_irq_chained_handler(irq2, intc_redirect_irq);
|
||||||
intc_redirect_irq, "redirect");
|
set_irq_chip(irq2, &d->chip);
|
||||||
set_irq_data(irq2, (void *)irq);
|
set_irq_data(irq2, (void *)irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user