This series converts all generic page table entries direct derefences via pxdp_get() based helpers extending the changes brought in via the commit c33c794828f2 ("mm: ptep_get() conversion"). First it does some platform specific changes for m68k and x86 architecture. This series has been build tested on multiple architecture such as x86, arm64, powerpc, powerpc64le, riscv, and m68k etc. Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: Ryan Roberts <ryan.roberts@xxxxxxx> Cc: "Mike Rapoport (IBM)" <rppt@xxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: x86@xxxxxxxxxx Cc: linux-m68k@xxxxxxxxxxxxxxxxxxxx Cc: linux-mm@xxxxxxxxx Cc: linux-fsdevel@xxxxxxxxxxxxxxx Cc: kasan-dev@xxxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Cc: linux-perf-users@xxxxxxxxxxxxxxx Cc: kasan-dev@xxxxxxxxxxxxxxxx Changes in V2: - Separated out PUD changes from P4D changes - Updated the commit message for x86 patch per Dave - Implemented local variable page table value caching when applicable - Updated all commit messages regarding local variable caching Changes in V1: https://lore.kernel.org/all/20240913084433.1016256-1-anshuman.khandual@xxxxxxx/ Anshuman Khandual (7): m68k/mm: Change pmd_val() x86/mm: Drop page table entry address output from pxd_ERROR() mm: Use ptep_get() for accessing PTE entries mm: Use pmdp_get() for accessing PMD entries mm: Use pudp_get() for accessing PUD entries mm: Use p4dp_get() for accessing P4D entries mm: Use pgdp_get() for accessing PGD entries arch/m68k/include/asm/page.h | 2 +- arch/x86/include/asm/pgtable-3level.h | 12 ++-- arch/x86/include/asm/pgtable_64.h | 20 +++--- drivers/misc/sgi-gru/grufault.c | 13 ++-- fs/proc/task_mmu.c | 28 +++++---- fs/userfaultfd.c | 6 +- include/linux/huge_mm.h | 6 +- include/linux/mm.h | 6 +- include/linux/pgtable.h | 49 +++++++++------ kernel/events/core.c | 6 +- mm/gup.c | 43 ++++++------- mm/hmm.c | 2 +- mm/huge_memory.c | 90 +++++++++++++++------------ mm/hugetlb.c | 10 +-- mm/hugetlb_vmemmap.c | 4 +- mm/kasan/init.c | 38 +++++------ mm/kasan/shadow.c | 12 ++-- mm/khugepaged.c | 4 +- mm/madvise.c | 6 +- mm/mapping_dirty_helpers.c | 2 +- mm/memory-failure.c | 14 ++--- mm/memory.c | 71 +++++++++++---------- mm/mempolicy.c | 4 +- mm/migrate.c | 4 +- mm/migrate_device.c | 10 +-- mm/mlock.c | 6 +- mm/mprotect.c | 2 +- mm/mremap.c | 4 +- mm/page_table_check.c | 4 +- mm/page_vma_mapped.c | 6 +- mm/pagewalk.c | 10 +-- mm/percpu.c | 8 +-- mm/pgalloc-track.h | 6 +- mm/pgtable-generic.c | 30 ++++----- mm/ptdump.c | 8 +-- mm/rmap.c | 10 +-- mm/sparse-vmemmap.c | 10 +-- mm/vmalloc.c | 58 +++++++++-------- mm/vmscan.c | 6 +- 39 files changed, 333 insertions(+), 297 deletions(-) -- 2.25.1