Hi Ralf, This patch has fixed spurious IRQ problem about vr41xx. Please apply this patch. Yoichi Signed-off-by: Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> diff -urN -X dontdiff a-orig/arch/mips/vr41xx/common/irq.c a/arch/mips/vr41xx/common/irq.c --- a-orig/arch/mips/vr41xx/common/irq.c 2005-07-12 01:04:42.000000000 +0900 +++ a/arch/mips/vr41xx/common/irq.c 2005-07-31 21:07:17.000000000 +0900 @@ -62,6 +62,7 @@ asmlinkage void irq_dispatch(unsigned int irq, struct pt_regs *regs) { irq_cascade_t *cascade; + irq_desc_t *desc; if (irq >= NR_IRQS) { atomic_inc(&irq_err_count); @@ -70,11 +71,15 @@ cascade = irq_cascade + irq; if (cascade->get_irq != NULL) { + unsigned int source_irq = irq; + desc = irq_desc + source_irq; + desc->handler->ack(source_irq); irq = cascade->get_irq(irq, regs); if (irq < 0) atomic_inc(&irq_err_count); else irq_dispatch(irq, regs); + desc->handler->end(source_irq); } else do_IRQ(irq, regs); }