[PATCH 0/5] arm64/mm: Drop PXD_TABLE_BIT

From: Anshuman Khandual
Date: Sat Oct 05 2024 - 08:38:44 EST


Clearing PXD_TABLE_BIT i.e bit[1] on a page table entry always operates on
the assumption that subsequent PXD_VALID i.e bit[0] is set. That's because
bits[1:0]="01" makes a block mapping. So it is prudent to treat bits[1:0]
as a single register field, which should be updated as block or table etc.
Although mk_[pmd|pud]_sect_prot() helpers go to some extent in using these
PXD_TYPE_SECT macros, their usage is not really consistent else where.

This series removes these table bit clearing for block mapping creation and
eventually completely drops off those table macros.

This series applies on v6.12-rc1.

Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Oliver Upton <oliver.upton@xxxxxxxxx>
Cc: James Morse <james.morse@xxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will@xxxxxxxxxx>
Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
Cc: Ryan Roberts <ryan.roberts@xxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Anshuman Khandual (5):
arm64/mm: Drop pte_mkhuge()
arm64/mm: Replace PXD_TABLE_BIT with PXD_TYPE_[MASK|SECT]
arm64/ptdump: Test PMD_TYPE_MASK for block mapping
KVM: arm64: ptdump: Test PMD_TYPE_MASK for block mapping
arm64/mm: Drop PXD_TABLE_BIT

arch/arm64/include/asm/pgtable-hwdef.h | 6 +-----
arch/arm64/include/asm/pgtable.h | 20 ++++++++------------
arch/arm64/kvm/ptdump.c | 4 ++--
arch/arm64/mm/hugetlbpage.c | 2 +-
arch/arm64/mm/ptdump.c | 8 ++++----
5 files changed, 16 insertions(+), 24 deletions(-)

--
2.25.1