[PATCH 0/8] KVM: arm64: Handle effective RES0 behaviour of undefined registers
Marc Zyngier
maz at kernel.org
Wed Sep 17 09:58:32 PDT 2025
When a feature is removed from a guest, we ensure that the trap and
control bits for that particular feature are made RES0.
For example, SCTLR2_EL2 contains a large number of bits. For any
feature FEAT_FOO that is controlled by a bit FOO in SCTLR2_EL2, we
make sure that SCTLR2_EL2.FOO is RES0 if FEAT_FOO is not visible to
the guest.
However, nothing makes SCTLR2_EL2 RES0 if FEAT_SCTLR2 is not visible.
This series aims at solving this sort of situations. It is still quite
incomplete, but aims at bridging a couple of other series:
- 20250911114621.3724469-1-yangjinqian1 at huawei.com which wants to
make EL2-related fields writable to allow migration
- 20250912212258.407350-1-oliver.upton at linux.dev which wants to align
the NV support with the rest of the kernel
Hopefully this helps getting to a point where we everything is
sanitised according to the architecture, EL2 on the same footing as
EL1, and everything migrating in every possible case.
And winning the lottery.
Marc Zyngier (8):
KVM: arm64: Enforce absence of FEAT_FGT on FGT registers
KVM: arm64: Enforce absence of FEAT_FGT2 on FGT2 registers
KVM: arm64: Enforce absence of FEAT_HCX on HCRX_EL2
KVM: arm64: Convert HCR_EL2 RES0 handling to compute_reg_res0_bits()
KVM: arm64: Enforce absence of FEAT_SCTLR2 on SCTLR2_EL{1,2}
KVM: arm64: Enforce absence of FEAT_TCR2 on TCR2_EL2
KVM: arm64: Convert SCTLR_EL1 RES0 handling to compute_reg_res0_bits()
KVM: arm64: Convert MDCR_EL2 RES0 handling to compute_reg_res0_bits()
arch/arm64/kvm/config.c | 385 +++++++++++++++++++++++++---------------
1 file changed, 240 insertions(+), 145 deletions(-)
--
2.39.2
More information about the linux-arm-kernel
mailing list