diff options
Diffstat (limited to 'arch/powerpc/mm')
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 11 | ||||
-rw-r--r-- | arch/powerpc/mm/slb.c | 6 |
2 files changed, 14 insertions, 3 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 0b018b29cda8..c2e5f61788b0 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -370,9 +370,14 @@ static void __init htab_init_page_sizes(void) | |||
370 | mmu_vmalloc_psize = MMU_PAGE_64K; | 370 | mmu_vmalloc_psize = MMU_PAGE_64K; |
371 | if (mmu_linear_psize == MMU_PAGE_4K) | 371 | if (mmu_linear_psize == MMU_PAGE_4K) |
372 | mmu_linear_psize = MMU_PAGE_64K; | 372 | mmu_linear_psize = MMU_PAGE_64K; |
373 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) | 373 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) { |
374 | mmu_io_psize = MMU_PAGE_64K; | 374 | /* |
375 | else | 375 | * Don't use 64k pages for ioremap on pSeries, since |
376 | * that would stop us accessing the HEA ethernet. | ||
377 | */ | ||
378 | if (!machine_is(pseries)) | ||
379 | mmu_io_psize = MMU_PAGE_64K; | ||
380 | } else | ||
376 | mmu_ci_restrictions = 1; | 381 | mmu_ci_restrictions = 1; |
377 | } | 382 | } |
378 | #endif /* CONFIG_PPC_64K_PAGES */ | 383 | #endif /* CONFIG_PPC_64K_PAGES */ |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index 47b06bad24ad..906daeda59a8 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -124,6 +124,12 @@ void slb_flush_and_rebolt(void) | |||
124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; | 124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; |
125 | } | 125 | } |
126 | 126 | ||
127 | /* | ||
128 | * We can't take a PMU exception in the following code, so hard | ||
129 | * disable interrupts. | ||
130 | */ | ||
131 | hard_irq_disable(); | ||
132 | |||
127 | /* We need to do this all in asm, so we're sure we don't touch | 133 | /* We need to do this all in asm, so we're sure we don't touch |
128 | * the stack between the slbia and rebolting it. */ | 134 | * the stack between the slbia and rebolting it. */ |
129 | asm volatile("isync\n" | 135 | asm volatile("isync\n" |