]> www.infradead.org Git - users/hch/misc.git/commitdiff
KVM: arm64: ptdump: Don't test PTE_VALID alongside other attributes
authorWei-Lin Chang <r09922117@csie.ntu.edu.tw>
Sat, 9 Aug 2025 13:53:56 +0000 (21:53 +0800)
committerMarc Zyngier <maz@kernel.org>
Mon, 8 Sep 2025 19:01:21 +0000 (20:01 +0100)
The attribute masks and test values in the ptdump code are meant for
individual attributes, however for stage-2 ptdump we included PTE_VALID
while testing for R, W, X, and AF. This led to some confusion and the
flipped output for the executable attribute.

Remove PTE_VALID from all attribute masks and values so that each test
matches only the relevant bits.

Additionally, the executable attribute printing is updated to align with
stage-1 ptdump, printing "NX" for non-executable regions and "x " for
executable ones.

Suggested-by: Anshuman Khandual <anshuman.khandual@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Suggested-by: Sebastian Ene <sebastianene@google.com>
Signed-off-by: Wei-Lin Chang <r09922117@csie.ntu.edu.tw>
Acked-by: Will Deacon <will@kernel.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/ptdump.c

index 098416d7e5c253b5fdd9410f48ce417648f31607..dc5acfb00af91ac3285bb3e866f402072d8a7a9a 100644 (file)
@@ -32,23 +32,23 @@ static const struct ptdump_prot_bits stage2_pte_bits[] = {
                .set    = " ",
                .clear  = "F",
        }, {
-               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R | PTE_VALID,
-               .val    = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R | PTE_VALID,
+               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R,
+               .val    = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R,
                .set    = "R",
                .clear  = " ",
        }, {
-               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | PTE_VALID,
-               .val    = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | PTE_VALID,
+               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W,
+               .val    = KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W,
                .set    = "W",
                .clear  = " ",
        }, {
-               .mask   = KVM_PTE_LEAF_ATTR_HI_S2_XN | PTE_VALID,
-               .val    = PTE_VALID,
-               .set    = " ",
-               .clear  = "X",
+               .mask   = KVM_PTE_LEAF_ATTR_HI_S2_XN,
+               .val    = KVM_PTE_LEAF_ATTR_HI_S2_XN,
+               .set    = "NX",
+               .clear  = "",
        }, {
-               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_AF | PTE_VALID,
-               .val    = KVM_PTE_LEAF_ATTR_LO_S2_AF | PTE_VALID,
+               .mask   = KVM_PTE_LEAF_ATTR_LO_S2_AF,
+               .val    = KVM_PTE_LEAF_ATTR_LO_S2_AF,
                .set    = "AF",
                .clear  = "  ",
        }, {