[PATCH] PPC64 Fix XICS startup function to enable as well

From: Paul Mackerras
Date: Wed Oct 20 2004 - 02:58:55 EST


When the generic IRQ patch went in, it changed the behaviour of
setup_irq (compared to the previous ppc64 version) in that we now
don't call the handler's enable function if it has a startup
function. The XICS interrupt controller has a startup function, and
so we weren't getting any interrupts through the XICS because they
never got enabled. This patch adds a call to xics_enable_irq to
xics_startup and fixes the problem.

Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>

diff -urN linux-2.5/arch/ppc64/kernel/xics.c test/arch/ppc64/kernel/xics.c
--- linux-2.5/arch/ppc64/kernel/xics.c 2004-08-24 07:22:47.000000000 +1000
+++ test/arch/ppc64/kernel/xics.c 2004-10-20 15:24:17.927552904 +1000
@@ -216,12 +216,15 @@

static unsigned int xics_startup(unsigned int virq)
{
- virq = irq_offset_down(virq);
- if (radix_tree_insert(&irq_map, virt_irq_to_real(virq),
- &virt_irq_to_real_map[virq]) == -ENOMEM)
+ unsigned int irq;
+
+ irq = irq_offset_down(virq);
+ if (radix_tree_insert(&irq_map, virt_irq_to_real(irq),
+ &virt_irq_to_real_map[irq]) == -ENOMEM)
printk(KERN_CRIT "Out of memory creating real -> virtual"
" IRQ mapping for irq %u (real 0x%x)\n",
- virq, virt_irq_to_real(virq));
+ virq, virt_irq_to_real(irq));
+ xics_enable_irq(virq);
return 0; /* return value is ignored */
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/