summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-22 16:45:43 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-23 14:20:42 +1000
commit574ce79cea9d3fda109ffcc82f81733de4740e5c (patch)
tree068785ce02361f5c7387046d976304e7ca6d8570 /arch/powerpc/sysdev
parent668fcb6972177489bdc01a66d697c3b494aa8a24 (diff)
downloadlinux-3.10-574ce79cea9d3fda109ffcc82f81733de4740e5c.tar.gz
linux-3.10-574ce79cea9d3fda109ffcc82f81733de4740e5c.tar.bz2
linux-3.10-574ce79cea9d3fda109ffcc82f81733de4740e5c.zip
powerpc/mpic: Create a revmap with enough entries for IPIs and timers
The current mpic code creates a linear revmap just big enough for all the sources, which happens to miss the IPIs and timers on some machines. This will in turn break when the irqdomain code loses the fallback of doing a linear search when the revmap fails (and really slows down IPIs otherwise). This happens for example on the U4 based Apple machines such as the dual core PowerMac G5s. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/mpic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 906f29c05c5..bfc6211e542 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1376,7 +1376,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
mpic->isu_mask = (1 << mpic->isu_shift) - 1;
mpic->irqhost = irq_domain_add_linear(mpic->node,
- last_irq + 1,
+ intvec_top,
&mpic_host_ops, mpic);
/*