kernel_optimize_test/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
..
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 percpu: make percpu symbols in powerpc unique 2009-10-29 22:34:14 +09:00
eeh_cache.c
eeh_driver.c powerpc/pseries: Use irq_has_action() in eeh_disable_irq() 2009-10-30 17:20:54 +11:00
eeh_event.c
eeh_sysfs.c
eeh.c PCI/powerpc: support PCIe fundamental reset 2009-09-09 13:29:41 -07:00
firmware.c powerpc: Fix hypervisor TLB batching 2009-10-14 16:58:37 +11:00
hotplug-cpu.c powerpc/pseries: Add hooks to put the CPU into an appropriate offline state 2009-11-24 14:33:04 +11:00
hotplug-memory.c
hvCall_inst.c powerpc: tracing: Give hypervisor call tracepoints access to arguments 2009-10-28 16:13:04 +11:00
hvCall.S powerpc: tracing: Give hypervisor call tracepoints access to arguments 2009-10-28 16:13:04 +11:00
hvconsole.c
hvcserver.c
iommu.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
Kconfig powerpc/pseries: Select XICS and PCI_MSI PSERIES 2009-12-18 14:54:25 +11:00
kexec.c
lpar.c powerpc: tracing: Give hypervisor call tracepoints access to arguments 2009-10-28 16:13:04 +11:00
Makefile powerpc/pseries: Kernel DLPAR Infrastructure 2009-12-09 17:09:32 +11:00
msi.c powerpc/pci: Fix regression in powerpc MSI-X 2009-11-05 17:06:27 +11:00
nvram.c
offline_states.h powerpc/pseries: Add hooks to put the CPU into an appropriate offline state 2009-11-24 14:33:04 +11:00
pci_dlpar.c powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
pci.c
phyp_dump.c
plpar_wrappers.h powerpc/pseries: Add extended_cede_processor() helper function. 2009-11-24 14:33:03 +11:00
power.c
pseries.h
ras.c
reconfig.c powerpc/pseries: Kernel DLPAR Infrastructure 2009-12-09 17:09:32 +11:00
scanlog.c powerpc: Move /proc/ppc64 to /proc/powerpc and add symlink 2009-10-30 17:20:53 +11:00
setup.c powerpc: Fix bug where perf_counters breaks oprofile 2009-09-11 11:27:58 +10:00
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