arm64/ptdump: Test both PTE_TABLE_BIT and PTE_VALID for block mappings
authorAnshuman Khandual <anshuman.khandual@arm.com>
Tue, 5 Nov 2024 04:41:54 +0000 (10:11 +0530)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 5 Nov 2024 11:56:29 +0000 (11:56 +0000)
Test both PTE_TABLE_BIT and PTE_VALID for block mappings, similar to KVM S2
ptdump. This ensures consistency in identifying block mappings, both in the
S1 and the S2 page tables. Besides being kernel page tables, there will not
be any unmapped (!PTE_VALID) block mappings.

Cc: Will Deacon <will@kernel.org>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20241105044154.4064181-1-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/mm/ptdump.c

index 264c5f9..688fbe0 100644 (file)
@@ -80,10 +80,10 @@ static const struct ptdump_prot_bits pte_bits[] = {
                .set    = "CON",
                .clear  = "   ",
        }, {
-               .mask   = PTE_TABLE_BIT,
-               .val    = PTE_TABLE_BIT,
-               .set    = "   ",
-               .clear  = "BLK",
+               .mask   = PTE_TABLE_BIT | PTE_VALID,
+               .val    = PTE_VALID,
+               .set    = "BLK",
+               .clear  = "   ",
        }, {
                .mask   = PTE_UXN,
                .val    = PTE_UXN,