summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdson Seabra <Edson.Seabra@cyclades.com>2005-12-19 16:16:50 +0100
committerPaul Mackerras <paulus@samba.org>2005-12-20 05:39:33 +0100
commitb273ed266a353ee6b238856e1ae705660dafdd70 (patch)
treeecc520a875549537e61de65ad624bb08341b69f3
parentpowerpc: correct register usage in 64-bit syscall exit path (diff)
downloadlinux-b273ed266a353ee6b238856e1ae705660dafdd70.tar.xz
linux-b273ed266a353ee6b238856e1ae705660dafdd70.zip
[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 d8991b88dc9c..5e8cc5ec6ab5 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 = {