]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: arm64: Make RVBAR_EL2 accesses UNDEF
authorMarc Zyngier <maz@kernel.org>
Mon, 14 Jul 2025 12:26:24 +0000 (13:26 +0100)
committerOliver Upton <oliver.upton@linux.dev>
Wed, 16 Jul 2025 03:24:28 +0000 (20:24 -0700)
We always expose a virtual CPU that has EL3 when NV is enabled,
irrespective of EL3 being actually implemented in HW.

Therefore, as per the architecture, RVBAR_EL2 must UNDEF, since
EL2 is not the highest implemented exception level. This is
consistent with RMR_EL2 also triggering an UNDEF.

Adjust the handling of RVBAR_EL2 accordingly.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20250714122634.3334816-2-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/sys_regs.c

index 76c2f0da821f8c992cc4a706555dc5b099438316..3f226cd5b502e0f6cd87a23c6a745d262e04c1e8 100644 (file)
@@ -108,7 +108,6 @@ static bool get_el2_to_el1_mapping(unsigned int reg,
                PURE_EL2_SYSREG(  HACR_EL2      );
                PURE_EL2_SYSREG(  VTTBR_EL2     );
                PURE_EL2_SYSREG(  VTCR_EL2      );
-               PURE_EL2_SYSREG(  RVBAR_EL2     );
                PURE_EL2_SYSREG(  TPIDR_EL2     );
                PURE_EL2_SYSREG(  HPFAR_EL2     );
                PURE_EL2_SYSREG(  HCRX_EL2      );
@@ -3370,7 +3369,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
        { SYS_DESC(SYS_MPAMVPM7_EL2), undef_access },
 
        EL2_REG(VBAR_EL2, access_rw, reset_val, 0),
-       EL2_REG(RVBAR_EL2, access_rw, reset_val, 0),
+       { SYS_DESC(SYS_RVBAR_EL2), undef_access },
        { SYS_DESC(SYS_RMR_EL2), undef_access },
 
        EL2_REG_VNCR(ICH_AP0R0_EL2, reset_val, 0),