diff options
author | Paul Mackerras <paulus@samba.org> | 2005-11-06 22:42:09 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-11-06 22:42:09 -0500 |
commit | c6135234550ed89a6fd0e8cb229633967e41d649 (patch) | |
tree | 22cef33e314839c4fb30d6fc888c0caa2a0f6602 /arch/powerpc/kernel/setup_64.c | |
parent | 76032de898f34db55b5048349db56557828a1390 (diff) | |
parent | 0b154bb7d0cce80e9c0bcf11d4f9e71b59409d26 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'arch/powerpc/kernel/setup_64.c')
-rw-r--r-- | arch/powerpc/kernel/setup_64.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 5f8154f95f96..785fd9d7b386 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -271,16 +271,21 @@ void __init early_setup(unsigned long dt_ptr) | |||
271 | DBG("Found, Initializing memory management...\n"); | 271 | DBG("Found, Initializing memory management...\n"); |
272 | 272 | ||
273 | /* | 273 | /* |
274 | * Initialize stab / SLB management | 274 | * Initialize the MMU Hash table and create the linear mapping |
275 | * of memory. Has to be done before stab/slb initialization as | ||
276 | * this is currently where the page size encoding is obtained | ||
275 | */ | 277 | */ |
276 | if (!firmware_has_feature(FW_FEATURE_ISERIES)) | 278 | htab_initialize(); |
277 | stab_initialize(lpaca->stab_real); | ||
278 | 279 | ||
279 | /* | 280 | /* |
280 | * Initialize the MMU Hash table and create the linear mapping | 281 | * Initialize stab / SLB management except on iSeries |
281 | * of memory | ||
282 | */ | 282 | */ |
283 | htab_initialize(); | 283 | if (!firmware_has_feature(FW_FEATURE_ISERIES)) { |
284 | if (cpu_has_feature(CPU_FTR_SLB)) | ||
285 | slb_initialize(); | ||
286 | else | ||
287 | stab_initialize(lpaca->stab_real); | ||
288 | } | ||
284 | 289 | ||
285 | DBG(" <- early_setup()\n"); | 290 | DBG(" <- early_setup()\n"); |
286 | } | 291 | } |
@@ -545,10 +550,12 @@ static void __init irqstack_early_init(void) | |||
545 | * SLB misses on them. | 550 | * SLB misses on them. |
546 | */ | 551 | */ |
547 | for_each_cpu(i) { | 552 | for_each_cpu(i) { |
548 | softirq_ctx[i] = (struct thread_info *)__va(lmb_alloc_base(THREAD_SIZE, | 553 | softirq_ctx[i] = (struct thread_info *) |
549 | THREAD_SIZE, 0x10000000)); | 554 | __va(lmb_alloc_base(THREAD_SIZE, |
550 | hardirq_ctx[i] = (struct thread_info *)__va(lmb_alloc_base(THREAD_SIZE, | 555 | THREAD_SIZE, 0x10000000)); |
551 | THREAD_SIZE, 0x10000000)); | 556 | hardirq_ctx[i] = (struct thread_info *) |
557 | __va(lmb_alloc_base(THREAD_SIZE, | ||
558 | THREAD_SIZE, 0x10000000)); | ||
552 | } | 559 | } |
553 | } | 560 | } |
554 | #else | 561 | #else |
@@ -576,8 +583,8 @@ static void __init emergency_stack_init(void) | |||
576 | limit = min(0x10000000UL, lmb.rmo_size); | 583 | limit = min(0x10000000UL, lmb.rmo_size); |
577 | 584 | ||
578 | for_each_cpu(i) | 585 | for_each_cpu(i) |
579 | paca[i].emergency_sp = __va(lmb_alloc_base(PAGE_SIZE, 128, | 586 | paca[i].emergency_sp = |
580 | limit)) + PAGE_SIZE; | 587 | __va(lmb_alloc_base(HW_PAGE_SIZE, 128, limit)) + HW_PAGE_SIZE; |
581 | } | 588 | } |
582 | 589 | ||
583 | /* | 590 | /* |