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 = {