aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdson Seabra <Edson.Seabra@cyclades.com>2005-12-19 09:16:50 -0600
committerPaul Mackerras <paulus@samba.org>2005-12-20 15:39:33 +1100
commitb273ed266a353ee6b238856e1ae705660dafdd70 (patch)
treeecc520a875549537e61de65ad624bb08341b69f3
parent3eb6f26bcd0d2ce53498deda988e68d663e1c9c2 (diff)
[PATCH] powerpc: CPM2 interrupt handler failure after 100,000 interrupts
The CPM2 interrupt handler does not return success to the IRQ subsystem, which causes it to kill the IRQ line after 100,000 interrupts. Signed-off-by: Edson Seabra <Edson.Seabra@cyclades.com> Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/ppc/platforms/85xx/mpc85xx_cds_common.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
index d8991b88dc9..5e8cc5ec6ab 100644
--- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
+++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
@@ -130,10 +130,11 @@ mpc85xx_cds_show_cpuinfo(struct seq_file *m)
}
#ifdef CONFIG_CPM2
-static void cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs)
{
while((irq = cpm2_get_irq(regs)) >= 0)
__do_IRQ(irq, regs);
+ return IRQ_HANDLED;
}
static struct irqaction cpm2_irqaction = {