diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2013-01-14 12:53:39 -0500 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2013-03-26 12:11:56 -0400 |
commit | aec0095653cd9812b9a15df0315364cc6d094c59 (patch) | |
tree | ef8a5ba0c72a171902552137d9737e731bf4ed6c /drivers/irqchip/irq-gic.c | |
parent | de88cbb7b244f3bcd61d49fd6dec35c19192545a (diff) |
irqchip: gic: Call handle_bad_irq() directly
Previously, the gic_handle_cascade_irq() function was calling the
ARM-specific do_bad_IRQ() function which calls handle_bad_irq() after
acquiring the desk->lock. Locking the cascaded IRQ desc is not needed
for error reporting, so just call handle_bad_irq() directly.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Rob Herring <rob.herring@calxeda.com>
Diffstat (limited to 'drivers/irqchip/irq-gic.c')
-rw-r--r-- | drivers/irqchip/irq-gic.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 0b1c0af646de..974f77c887b8 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c | |||
@@ -44,7 +44,6 @@ | |||
44 | #include <asm/irq.h> | 44 | #include <asm/irq.h> |
45 | #include <asm/exception.h> | 45 | #include <asm/exception.h> |
46 | #include <asm/smp_plat.h> | 46 | #include <asm/smp_plat.h> |
47 | #include <asm/mach/irq.h> | ||
48 | 47 | ||
49 | #include "irqchip.h" | 48 | #include "irqchip.h" |
50 | 49 | ||
@@ -324,7 +323,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) | |||
324 | 323 | ||
325 | cascade_irq = irq_find_mapping(chip_data->domain, gic_irq); | 324 | cascade_irq = irq_find_mapping(chip_data->domain, gic_irq); |
326 | if (unlikely(gic_irq < 32 || gic_irq > 1020)) | 325 | if (unlikely(gic_irq < 32 || gic_irq > 1020)) |
327 | do_bad_IRQ(cascade_irq, desc); | 326 | handle_bad_irq(cascade_irq, desc); |
328 | else | 327 | else |
329 | generic_handle_irq(cascade_irq); | 328 | generic_handle_irq(cascade_irq); |
330 | 329 | ||