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 Cc: Greg Ungerer --- arch/m68knommu/platform/5272/intc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) Index: linux-2.6-tip/arch/m68knommu/platform/5272/intc.c =================================================================== --- linux-2.6-tip.orig/arch/m68knommu/platform/5272/intc.c +++ linux-2.6-tip/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 = { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/