From: Edson Seabra <[EMAIL PROTECTED]>

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 at cyclades.com>
Signed-off-by: Marcelo Tosatti <marcelo.tosatti at cyclades.com>
Signed-off-by: Kumar Gala <galak at kernel.crashing.org>

---

Paul: We should put this in the merge tree for linus to pick up for 
2.6.15.  Fixed up return type to be irqreturn_t


commit c211d7347a735eb5d5996433f3eef7159c3fe41a
tree 1c14ca8d89ae7b7d989dac917f8bf87dba40b6c7
parent 1abf7e247b676a84fbfcd47442dc44788526f2f6
author Kumar Gala <galak at kernel.crashing.org> Mon, 19 Dec 2005 09:17:05 -0600
committer Kumar Gala <galak at kernel.crashing.org> Mon, 19 Dec 2005 09:17:05 
-0600

 arch/ppc/platforms/85xx/mpc85xx_cds_common.c |    3 ++-
 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 d8991b8..5e8cc5e 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
 }
 
 #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 = {




Reply via email to