]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: arm64: nv: Expose hardware access flag management to NV guests
authorOliver Upton <oupton@kernel.org>
Mon, 24 Nov 2025 19:01:56 +0000 (11:01 -0800)
committerOliver Upton <oupton@kernel.org>
Mon, 1 Dec 2025 08:44:02 +0000 (00:44 -0800)
Everything is in place to update the access flag at S1 and S2. Expose
support for the access flag flavor of FEAT_HAFDBS to NV guests.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Tested-by: Marc Zyngier <maz@kernel.org>
Link: https://msgid.link/20251124190158.177318-15-oupton@kernel.org
Signed-off-by: Oliver Upton <oupton@kernel.org>
arch/arm64/kvm/nested.c

index 6495442f400af99bfba8fe901d34e6b1eca79692..88d7dfb44410c6227d41836be08e80794d7e2c3a 100644 (file)
@@ -1599,11 +1599,13 @@ u64 limit_nv_id_reg(struct kvm *kvm, u32 reg, u64 val)
        case SYS_ID_AA64MMFR1_EL1:
                val &= ~(ID_AA64MMFR1_EL1_CMOW          |
                         ID_AA64MMFR1_EL1_nTLBPA        |
-                        ID_AA64MMFR1_EL1_ETS           |
-                        ID_AA64MMFR1_EL1_HAFDBS);
+                        ID_AA64MMFR1_EL1_ETS);
+
                /* FEAT_E2H0 implies no VHE */
                if (test_bit(KVM_ARM_VCPU_HAS_EL2_E2H0, kvm->arch.vcpu_features))
                        val &= ~ID_AA64MMFR1_EL1_VH;
+
+               val = ID_REG_LIMIT_FIELD_ENUM(val, ID_AA64MMFR1_EL1, HAFDBS, AF);
                break;
 
        case SYS_ID_AA64MMFR2_EL1: