powerpc/mm/radix: Use the right page size for vmemmap mapping
commit 89a3496e0664577043666791ec07fb731d57c950 upstream. We use mmu_vmemmap_psize to find the page size for mapping the vmmemap area. With radix translation, we are suboptimally setting this value to PAGE_SIZE. We do check for 2M page size support and update mmu_vmemap_psize to use hugepage size but we suboptimally reset the value to PAGE_SIZE in radix__early_init_mmu(). This resulted in always mapping vmemmap area with 64K page size. Fixes: 2bfd65e45e87 ("powerpc/mm/radix: Add radix callbacks for early init routines") Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
27d3d8cdf8
commit
a49808a8f1
@ -287,14 +287,6 @@ void __init radix__early_init_devtree(void)
|
||||
mmu_psize_defs[MMU_PAGE_64K].shift = 16;
|
||||
mmu_psize_defs[MMU_PAGE_64K].ap = 0x5;
|
||||
found:
|
||||
#ifdef CONFIG_SPARSEMEM_VMEMMAP
|
||||
if (mmu_psize_defs[MMU_PAGE_2M].shift) {
|
||||
/*
|
||||
* map vmemmap using 2M if available
|
||||
*/
|
||||
mmu_vmemmap_psize = MMU_PAGE_2M;
|
||||
}
|
||||
#endif /* CONFIG_SPARSEMEM_VMEMMAP */
|
||||
return;
|
||||
}
|
||||
|
||||
@ -337,7 +329,13 @@ void __init radix__early_init_mmu(void)
|
||||
|
||||
#ifdef CONFIG_SPARSEMEM_VMEMMAP
|
||||
/* vmemmap mapping */
|
||||
mmu_vmemmap_psize = mmu_virtual_psize;
|
||||
if (mmu_psize_defs[MMU_PAGE_2M].shift) {
|
||||
/*
|
||||
* map vmemmap using 2M if available
|
||||
*/
|
||||
mmu_vmemmap_psize = MMU_PAGE_2M;
|
||||
} else
|
||||
mmu_vmemmap_psize = mmu_virtual_psize;
|
||||
#endif
|
||||
/*
|
||||
* initialize page table size
|
||||
|
Loading…
x
Reference in New Issue
Block a user