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 590f1f67c874..a83dfa3cf40c 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -351,9 +351,14 @@ static void __init htab_init_page_sizes(void) | |||
351 | mmu_vmalloc_psize = MMU_PAGE_64K; | 351 | mmu_vmalloc_psize = MMU_PAGE_64K; |
352 | if (mmu_linear_psize == MMU_PAGE_4K) | 352 | if (mmu_linear_psize == MMU_PAGE_4K) |
353 | mmu_linear_psize = MMU_PAGE_64K; | 353 | mmu_linear_psize = MMU_PAGE_64K; |
354 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) | 354 | if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) { |
355 | mmu_io_psize = MMU_PAGE_64K; | 355 | /* |
356 | else | 356 | * Don't use 64k pages for ioremap on pSeries, since |
357 | * that would stop us accessing the HEA ethernet. | ||
358 | */ | ||
359 | if (!machine_is(pseries)) | ||
360 | mmu_io_psize = MMU_PAGE_64K; | ||
361 | } else | ||
357 | mmu_ci_restrictions = 1; | 362 | mmu_ci_restrictions = 1; |
358 | } | 363 | } |
359 | #endif /* CONFIG_PPC_64K_PAGES */ | 364 | #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" |