That handler lacks the minimal checks for action being zero etc. Keep
the weird flow - ack before handling - intact and call into
handle_simple_irq which does the right thing.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Greg Ungerer <gerg@xxxxxxxxxxx>
LKML-Reference: <20110202212552.413849952@xxxxxxxxxxxxx>
---
arch/m68knommu/platform/5272/intc.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
Index: linux-next/arch/m68knommu/platform/5272/intc.c
===================================================================
--- linux-next.orig/arch/m68knommu/platform/5272/intc.c
+++ linux-next/arch/m68knommu/platform/5272/intc.c
@@ -137,11 +137,8 @@ static int intc_irq_set_type(unsigned in
*/
static void intc_external_irq(unsigned int irq, struct irq_desc *desc)
{
- kstat_incr_irqs_this_cpu(irq, desc);
- desc->status |= IRQ_INPROGRESS;
desc->chip->ack(irq);
- handle_IRQ_event(irq, desc->action);
- desc->status &= ~IRQ_INPROGRESS;
+ handle_simple_irq(irq, desc);
}
static struct irq_chip intc_irq_chip = {