diff options
Diffstat (limited to 'arch/powerpc/mm/hash_utils_64.c')
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 32f416175db1..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 */ |
@@ -506,10 +511,10 @@ void __init htab_initialize(void) | |||
506 | } else { | 511 | } else { |
507 | /* Find storage for the HPT. Must be contiguous in | 512 | /* Find storage for the HPT. Must be contiguous in |
508 | * the absolute address space. On cell we want it to be | 513 | * the absolute address space. On cell we want it to be |
509 | * in the first 1 Gig. | 514 | * in the first 2 Gig so we can use it for IOMMU hacks. |
510 | */ | 515 | */ |
511 | if (machine_is(cell)) | 516 | if (machine_is(cell)) |
512 | limit = 0x40000000; | 517 | limit = 0x80000000; |
513 | else | 518 | else |
514 | limit = 0; | 519 | limit = 0; |
515 | 520 | ||