Commit 2a0e92f4 authored by Paul Mackerras's avatar Paul Mackerras Committed by Linus Torvalds

[PATCH] ppc64: fix XICS startup function to enable as well

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: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 3c82dd8b
...@@ -216,12 +216,15 @@ xics_ops pSeriesLP_ops = { ...@@ -216,12 +216,15 @@ xics_ops pSeriesLP_ops = {
static unsigned int xics_startup(unsigned int virq) static unsigned int xics_startup(unsigned int virq)
{ {
virq = irq_offset_down(virq); unsigned int irq;
if (radix_tree_insert(&irq_map, virt_irq_to_real(virq),
&virt_irq_to_real_map[virq]) == -ENOMEM) 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" printk(KERN_CRIT "Out of memory creating real -> virtual"
" IRQ mapping for irq %u (real 0x%x)\n", " 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 */ return 0; /* return value is ignored */
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment