The patch titled Subject: mm/mremap: use pmd/pud_poplulate to update page table entries has been added to the -mm tree. Its filename is mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> Subject: mm/mremap: use pmd/pud_poplulate to update page table entries pmd/pud_populate is the right interface to be used to set the respective page table entries. Some architectures like ppc64 do assume that set_pmd/= pud_at can only be used to set a hugepage PTE. Since we are not setting up a hug= epage PTE here, use the pmd/pud_populate interface. Link: https://lkml.kernel.org/r/20210422054323.150993-4-aneesh.kumar@xxxxxxxxxxxxx Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx> Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx> Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> Cc: Kalesh Singh <kaleshsingh@xxxxxxxxxx> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/mremap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) --- a/mm/mremap.c~mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries +++ a/mm/mremap.c @@ -26,6 +26,7 @@ #include <asm/cacheflush.h> #include <asm/tlbflush.h> +#include <asm/pgalloc.h> #include "internal.h" @@ -257,9 +258,8 @@ static bool move_normal_pmd(struct vm_ar pmd_clear(old_pmd); VM_BUG_ON(!pmd_none(*new_pmd)); + pmd_populate(mm, new_pmd, (pgtable_t)pmd_page_vaddr(pmd)); - /* Set the new pmd */ - set_pmd_at(mm, new_addr, new_pmd, pmd); flush_tlb_range(vma, old_addr, old_addr + PMD_SIZE); if (new_ptl != old_ptl) spin_unlock(new_ptl); @@ -306,8 +306,7 @@ static bool move_normal_pud(struct vm_ar VM_BUG_ON(!pud_none(*new_pud)); - /* Set the new pud */ - set_pud_at(mm, new_addr, new_pud, pud); + pud_populate(mm, new_pud, (pmd_t *)pud_page_vaddr(pud)); flush_tlb_range(vma, old_addr, old_addr + PUD_SIZE); if (new_ptl != old_ptl) spin_unlock(new_ptl); _ Patches currently in -mm which might be from aneesh.kumar@xxxxxxxxxxxxx are selftest-mremap_test-update-the-test-to-handle-pagesize-other-than-4k.patch selftest-mremap_test-avoid-crash-with-static-build.patch mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries.patch powerpc-mm-book3s64-fix-possible-build-error.patch powerpc-mm-book3s64-update-tlb-flush-routines-to-take-a-page-walk-cache-flush-argument.patch mm-mremap-use-range-flush-that-does-tlb-and-page-walk-cache-flush.patch mm-mremap-move-tlb-flush-outside-page-table-lock.patch mm-mremap-allow-arch-runtime-override.patch powerpc-mm-enable-move-pmd-pud.patch