From: Greg Kroah-Hartman Date: Thu, 19 Sep 2019 11:13:42 +0000 (+0200) Subject: 4.9-stable patches X-Git-Tag: v4.4.194~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=942cfa0fa620f3d7c7179d5dec34f65783bfc077;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch --- diff --git a/queue-4.9/powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch b/queue-4.9/powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch new file mode 100644 index 00000000000..c6d72ead5d8 --- /dev/null +++ b/queue-4.9/powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch @@ -0,0 +1,58 @@ +From 89a3496e0664577043666791ec07fb731d57c950 Mon Sep 17 00:00:00 2001 +From: "Aneesh Kumar K.V" +Date: Mon, 1 Jul 2019 20:04:42 +0530 +Subject: powerpc/mm/radix: Use the right page size for vmemmap mapping + +From: Aneesh Kumar K.V + +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 +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/mm/pgtable-radix.c | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + +--- a/arch/powerpc/mm/pgtable-radix.c ++++ b/arch/powerpc/mm/pgtable-radix.c +@@ -287,14 +287,6 @@ void __init radix__early_init_devtree(vo + 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 diff --git a/queue-4.9/series b/queue-4.9/series index a3a4b4425dd..50a42a0eb87 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -32,3 +32,4 @@ crypto-talitos-hmac-snoop-no-afeu-mode-requires-sw-icv-checking.patch drm-mediatek-mtk_drm_drv.c-add-of_node_put-before-goto.patch nvmem-use-the-same-permissions-for-eeprom-as-for-nvmem.patch x86-build-add-wnoaddress-of-packed-member-to-realmode_cflags-to-silence-gcc9-build-warning.patch +powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch