original_kernel/arch/powerpc/platforms/pseries
Mark Nelson 36350e0069 powerpc/pseries: Fix kexec regression caused by CPPR tracking
The code to track the CPPR values added by commit
49bd364713 ("powerpc/pseries: Track previous
CPPR values to correctly EOI interrupts") broke kexec on pseries because
the kexec code in xics.c calls xics_set_cpu_priority() before the IPI has
been EOI'ed. This wasn't a problem previously but it now triggers a BUG_ON
in xics_set_cpu_priority() because os_cppr->index isn't 0.

Fix this problem by setting the index on the CPPR stack to 0 before calling
xics_set_cpu_priority() in xics_teardown_cpu().

Also make it clear that we only want to set the priority when there's just
one CPPR value in the stack, and enforce it by updating the value of
os_cppr->stack[0] rather than os_cppr->stack[os_cppr->index].

While we're at it change the BUG_ON to a WARN_ON.

Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Mark Nelson <markn@au1.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-02-08 15:29:19 +11:00
..
Kconfig powerpc/pseries: Select XICS and PCI_MSI PSERIES 2009-12-18 14:54:25 +11:00
Makefile
cmm.c powerpc: Make the CMM memory hotplug aware 2009-12-18 14:53:36 +11:00
dlpar.c powerpc: Move cpu hotplug driver lock from pseries to powerpc 2010-01-15 13:26:18 +11:00
dtl.c
eeh.c
eeh_cache.c
eeh_driver.c
eeh_event.c
eeh_sysfs.c
firmware.c
hotplug-cpu.c
hotplug-memory.c
hvCall.S
hvCall_inst.c
hvconsole.c
hvcserver.c
iommu.c
kexec.c
lpar.c
msi.c
nvram.c
offline_states.h
pci.c
pci_dlpar.c
phyp_dump.c
plpar_wrappers.h
power.c
pseries.h
ras.c
reconfig.c
scanlog.c
setup.c
smp.c powerpc/pseries: Don't panic when H_PROD fails during cpu-online. 2009-12-18 14:54:26 +11:00
xics.c powerpc/pseries: Fix kexec regression caused by CPPR tracking 2010-02-08 15:29:19 +11:00
xics.h