[POWERPC] Don't use 64k pages for ioremap on pSeries
On pSeries, the hypervisor doesn't let us map in the eHEA ethernet adapter using 64k pages, and thus the ehea driver will fail if 64k pages are configured. This works around the problem by always using 4k pages for ioremap on pSeries (but not on other platforms). A better fix would be to check whether the partition could ever have an eHEA adapter, and only force 4k pages if it could, but this will do for 2.6.25. This is based on an earlier patch by Tony Breeds. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
d2532dd20a
Коммит
cfe666b145
|
@ -351,9 +351,14 @@ static void __init htab_init_page_sizes(void)
|
|||
mmu_vmalloc_psize = MMU_PAGE_64K;
|
||||
if (mmu_linear_psize == MMU_PAGE_4K)
|
||||
mmu_linear_psize = MMU_PAGE_64K;
|
||||
if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE))
|
||||
mmu_io_psize = MMU_PAGE_64K;
|
||||
else
|
||||
if (cpu_has_feature(CPU_FTR_CI_LARGE_PAGE)) {
|
||||
/*
|
||||
* Don't use 64k pages for ioremap on pSeries, since
|
||||
* that would stop us accessing the HEA ethernet.
|
||||
*/
|
||||
if (!machine_is(pseries))
|
||||
mmu_io_psize = MMU_PAGE_64K;
|
||||
} else
|
||||
mmu_ci_restrictions = 1;
|
||||
}
|
||||
#endif /* CONFIG_PPC_64K_PAGES */
|
||||
|
|
Загрузка…
Ссылка в новой задаче