linux-stable-rt/arch/powerpc/platforms
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
..
8xx
40x
44x
52xx Merge branch 'for-33' of git://repo.or.cz/linux-kbuild 2009-12-17 07:23:42 -08:00
82xx powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
83xx powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR 2009-12-10 19:56:41 -06:00
85xx powerpc/85xx: Wrong variable returned on error 2009-12-18 14:53:37 +11:00
86xx powerpc: Make "intspec" pointers in irq_host->xlate() const 2009-12-09 17:10:37 +11:00
512x powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
amigaone kbuild: move utsrelease.h to include/generated 2009-12-12 13:08:15 +01:00
cell powerpc: Use helpers for rlimits 2010-01-15 13:20:08 +11:00
chrp Merge branch 'for-33' of git://repo.or.cz/linux-kbuild 2009-12-17 07:23:42 -08:00
embedded6xx powerpc/gc/wii: Remove get_irq_desc() 2009-12-21 11:12:14 +11:00
iseries powerpc/iseries: Initialise on-stack completion 2010-01-15 13:26:14 +11:00
maple
pasemi locking: Convert __raw_spin* functions to arch_spin* 2009-12-14 23:55:32 +01:00
powermac Merge branch 'for-33' of git://repo.or.cz/linux-kbuild 2009-12-17 07:23:42 -08:00
prep
ps3 powerpc: Fixup last users of irq_chip->typename 2009-11-24 14:32:45 +11:00
pseries powerpc/pseries: Fix kexec regression caused by CPPR tracking 2010-02-08 15:29:19 +11:00
Kconfig powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00
Kconfig.cputype Merge branch 'next' of git://git.secretlab.ca/git/linux-2.6 2009-12-16 13:26:53 -08:00
Makefile powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00
fsl_uli1575.c