summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2008-01-15 17:29:33 +1100
committerPaul Mackerras <paulus@samba.org>2008-01-15 17:30:58 +1100
commitdfbe0d3b6be52596b5694b1bb75b19562e769021 (patch)
tree75e3ef05b6dd8cc7065fe77a05a9cd1b3495619a /arch/powerpc/platforms
parentd262c32a4bcc3e5fda0325a64e53c25fe1e999d7 (diff)
downloadlinux-dfbe0d3b6be52596b5694b1bb75b19562e769021.tar.gz
linux-dfbe0d3b6be52596b5694b1bb75b19562e769021.tar.bz2
linux-dfbe0d3b6be52596b5694b1bb75b19562e769021.zip
[POWERPC] Fix boot failure on POWER6
Commit 473980a99316c0e788bca50996375a2815124ce1 added a call to clear the SLB shadow buffer before registering it. Unfortunately this means that we clear out the entries that slb_initialize has previously set in there. On POWER6, the hypervisor uses the SLB shadow buffer when doing partition switches, and that means that after the next partition switch, each non-boot CPU has no SLB entries to map the kernel text and data, which causes it to crash. This fixes it by reverting most of 473980a9 and instead clearing the 3rd entry explicitly in slb_initialize. This fixes the problem that 473980a9 was trying to solve, but without breaking POWER6. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/pseries/lpar.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index 34317aa148a8..9a455d46379d 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -272,7 +272,6 @@ void vpa_init(int cpu)
*/
addr = __pa(&slb_shadow[cpu]);
if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
- slb_shadow_clear_all();
ret = register_slb_shadow(hwcpu, addr);
if (ret)
printk(KERN_ERR