[PATCH v1 00/19] cleanup/refactor pgtable.h

From: Christophe Leroy
Date: Mon Sep 11 2023 - 17:28:51 EST


This series is a cleanup of pgtable.h for nohash mainly

Main purpose is to refactor a lot of common code between
nohash/32 and nohash/64.

This series is a prerequisite for following series that will
rework PAGE flags and implement execute-only protection.

Christophe Leroy (19):
powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro
powerpc: Remove pte_ERROR()
powerpc: Deduplicate prototypes of ptep_set_access_flags() and
phys_mem_access_prot()
powerpc: Refactor update_mmu_cache_range()
powerpc: Untangle fixmap.h and pgtable.h and mmu.h
powerpc/nohash: Remove {pte/pmd}_protnone()
powerpc/nohash: Refactor declaration of {map/unmap}_kernel_page()
powerpc/nohash: Move 8xx version of pte_update() into pte-8xx.h
powerpc/nohash: Replace #ifdef CONFIG_44x by IS_ENABLED(CONFIG_44x) in
pgtable.h
powerpc/nohash: Refactor pte_update()
powerpc/nohash: Refactor checking of no-change in pte_update()
powerpc/nohash: Deduplicate _PAGE_CHG_MASK
powerpc/nohash: Deduplicate pte helpers
powerpc/nohash: Refactor ptep_test_and_clear_young()
powerpc/nohash: Deduplicate ptep_set_wrprotect() and
ptep_get_and_clear()
powerpc/nohash: Refactor pte_clear()
powerpc/nohash: Refactor __ptep_set_access_flags()

arch/powerpc/include/asm/book3s/32/pgtable.h | 12 +-
arch/powerpc/include/asm/book3s/64/pgtable.h | 3 +-
arch/powerpc/include/asm/book3s/pgtable.h | 33 ---
arch/powerpc/include/asm/fixmap.h | 16 +-
arch/powerpc/include/asm/nohash/32/mmu-8xx.h | 1 -
arch/powerpc/include/asm/nohash/32/pgtable.h | 201 +------------------
arch/powerpc/include/asm/nohash/32/pte-40x.h | 3 -
arch/powerpc/include/asm/nohash/32/pte-8xx.h | 64 ++++++
arch/powerpc/include/asm/nohash/64/pgtable.h | 118 +----------
arch/powerpc/include/asm/nohash/pgtable.h | 182 +++++++++++++----
arch/powerpc/include/asm/pgtable.h | 32 +++
arch/powerpc/mm/init_32.c | 1 +
arch/powerpc/mm/mem.c | 1 +
arch/powerpc/mm/nohash/8xx.c | 2 +
arch/powerpc/mm/nohash/book3e_pgtable.c | 2 +-
arch/powerpc/mm/nohash/e500_hugetlbpage.c | 3 +-
arch/powerpc/platforms/8xx/cpm1.c | 1 +
17 files changed, 268 insertions(+), 407 deletions(-)

--
2.41.0