summaryrefslogtreecommitdiffstats
path: root/drivers/sh/intc.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-02-09 08:17:20 +0100
committerPaul Mundt <lethal@linux-sh.org>2010-02-09 10:24:31 +0100
commite6f077592d1de2f6a4fc760e7b5d6f20b37d3a27 (patch)
treeb8d6e785f2de334321a956d86e42777b71b47ce4 /drivers/sh/intc.c
parentsh: sh7724/Ecovec24/KFR2R09/MS7724SE SDHI vector merge (diff)
downloadlinux-e6f077592d1de2f6a4fc760e7b5d6f20b37d3a27.tar.xz
linux-e6f077592d1de2f6a4fc760e7b5d6f20b37d3a27.zip
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>
Diffstat (limited to 'drivers/sh/intc.c')
-rw-r--r--drivers/sh/intc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c
index 3a687396dfa2..66594eb4477d 100644
--- a/drivers/sh/intc.c
+++ b/drivers/sh/intc.c
@@ -896,8 +896,8 @@ void __init register_intc_controller(struct intc_desc *desc)
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);
}
}