aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2006-04-01 11:45:04 -0500
committerPaul Mackerras <paulus@samba.org>2006-04-01 18:32:15 -0500
commit856d08ec46c5ecf3df13827c492fb6998fdc8322 (patch)
tree24d64c8000c80da137167a08dfb42de5759c2cc0
parent2c6967750a6f1e206a44ab5cf43c36aacb91372b (diff)
[PATCH] powerpc: iSeries needs slb_initialize to be called
Since the powerpc 64k pages patch went in, systems that have SLBs (like Power4 iSeries) needed to have slb_initialize called to set up some variables for the SLB miss handler. This was not being called on the boot processor on iSeries, so on single cpu iSeries machines, we would get apparent memory curruption as soon as we entered user mode. This patch fixes that by calling slb_initialize on the boot cpu if the processor has an SLB. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/kernel/setup_64.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 59aa92cd6fa4..13e91c4d70a8 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -215,12 +215,10 @@ void __init early_setup(unsigned long dt_ptr)
215 /* 215 /*
216 * Initialize stab / SLB management except on iSeries 216 * Initialize stab / SLB management except on iSeries
217 */ 217 */
218 if (!firmware_has_feature(FW_FEATURE_ISERIES)) { 218 if (cpu_has_feature(CPU_FTR_SLB))
219 if (cpu_has_feature(CPU_FTR_SLB)) 219 slb_initialize();
220 slb_initialize(); 220 else if (!firmware_has_feature(FW_FEATURE_ISERIES))
221 else 221 stab_initialize(get_paca()->stab_real);
222 stab_initialize(get_paca()->stab_real);
223 }
224 222
225 DBG(" <- early_setup()\n"); 223 DBG(" <- early_setup()\n");
226} 224}