[POWERPC] pSeries/kexec: Fix for interrupt distribution
authorMohan Kumar M <mohan@in.ibm.com>
Fri, 17 Nov 2006 12:12:24 +0000 (17:42 +0530)
committerPaul Mackerras <paulus@samba.org>
Mon, 4 Dec 2006 09:41:22 +0000 (20:41 +1100)
commita5715d6dfc85e002bfad68bb2858cf5a248e2060
treeb3976f51fa51de75a44022b31e17ac98e051f99d
parent11faa658c668030759d4aea6a273b7ac9a0b4746
[POWERPC] pSeries/kexec: Fix for interrupt distribution

This allows any secondary CPU thread also to become boot cpu for
POWER5.  The patch is required to solve kdump boot issue when the
kdump kernel is booted with parameter "maxcpus=1".  XICS init code
tries to match the current boot cpu id with "reg" property in each CPU
node in the device tree.  But CPU node is created only for primary
thread CPU ids and "reg" property only reflects primary CPU ids.  So
when a kernel is booted on a secondary cpu thread above condition will
never meet and the default distribution server is left as zero.  This
leads to route the interrupts to CPU 0, but which is not online at
this time.

We use ibm,ppc-interrupt-server#s to check for both primary and
secondary CPU ids.  Accordingly default distribution server value is
initialized from "ibm,ppc-interrupt-gserver#s" property.  We loop
through ibm,ppc-interrupt-gserver#s property to find the global
distribution server from the last entry that matches with boot cpuid.

Signed-off-by: Mohan Kumar M <mohan@in.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pseries/xics.c