aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorEdson Seabra <Edson.Seabra@cyclades.com>2005-12-19 10:16:50 -0500
committerPaul Mackerras <paulus@samba.org>2005-12-19 23:39:33 -0500
commitb273ed266a353ee6b238856e1ae705660dafdd70 (patch)
treeecc520a875549537e61de65ad624bb08341b69f3 /arch
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>
Diffstat (limited to 'arch')
-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)
130} 130}
131 131
132#ifdef CONFIG_CPM2 132#ifdef CONFIG_CPM2
133static void cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) 133static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs)
134{ 134{
135 while((irq = cpm2_get_irq(regs)) >= 0) 135 while((irq = cpm2_get_irq(regs)) >= 0)
136 __do_IRQ(irq, regs); 136 __do_IRQ(irq, regs);
137 return IRQ_HANDLED;
137} 138}
138 139
139static struct irqaction cpm2_irqaction = { 140static struct irqaction cpm2_irqaction = {