Aneesh Kumar K.V's on June 29, 2019 5:38 pm: > Also on hash with 4K PAGE_SIZE make sure we use 4K page size for > vmemmap.
Can you add a line in the changelog to describe the radix problem you fixed? Also I would say the also could be a separate patch? Thanks, Nick > > Fixes: 2bfd65e45e87 ("powerpc/mm/radix: Add radix callbacks for early init > routines") > Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.ibm.com> > --- > arch/powerpc/mm/book3s64/hash_utils.c | 4 +--- > arch/powerpc/mm/book3s64/radix_pgtable.c | 16 +++++++--------- > 2 files changed, 8 insertions(+), 12 deletions(-) > > diff --git a/arch/powerpc/mm/book3s64/hash_utils.c > b/arch/powerpc/mm/book3s64/hash_utils.c > index 49f8c8940bd9..54013bbc60aa 100644 > --- a/arch/powerpc/mm/book3s64/hash_utils.c > +++ b/arch/powerpc/mm/book3s64/hash_utils.c > @@ -686,10 +686,8 @@ static void __init htab_init_page_sizes(void) > if (mmu_psize_defs[MMU_PAGE_16M].shift && > memblock_phys_mem_size() >= 0x40000000) > mmu_vmemmap_psize = MMU_PAGE_16M; > - else if (mmu_psize_defs[MMU_PAGE_64K].shift) > - mmu_vmemmap_psize = MMU_PAGE_64K; > else > - mmu_vmemmap_psize = MMU_PAGE_4K; > + mmu_vmemmap_psize = mmu_virtual_psize; > #endif /* CONFIG_SPARSEMEM_VMEMMAP */ > > printk(KERN_DEBUG "Page orders: linear mapping = %d, " > diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c > b/arch/powerpc/mm/book3s64/radix_pgtable.c > index 60d97fab4de2..03d804a0dc8c 100644 > --- a/arch/powerpc/mm/book3s64/radix_pgtable.c > +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c > @@ -529,14 +529,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; > } > > @@ -601,7 +593,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 > -- > 2.21.0 > >