diff options
| author | Marc Zyngier <maz@kernel.org> | 2026-04-01 13:35:57 +0300 |
|---|---|---|
| committer | Marc Zyngier <maz@kernel.org> | 2026-04-01 17:42:25 +0300 |
| commit | d82d09d5ba4be0b5eb053b2ba2bc0e82c49cf2c8 (patch) | |
| tree | 08b4536375682df9aefec516dff50d3e8292774b | |
| parent | ecc7f02499544ae879716be837af78260a6a10f7 (diff) | |
| download | linux-d82d09d5ba4be0b5eb053b2ba2bc0e82c49cf2c8.tar.xz | |
KVM: arm64: Don't skip per-vcpu NV initialisation
Some GICv5-related rework have resulted in the NV sanitisation of
registers being skipped for secondary vcpus, which is a pretty bad
idea.
Hoist the NV init early so that it is always executed.
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Fixes: cbd8c958be54a ("KVM: arm64: Return early from kvm_finalize_sys_regs() if guest has run")
Link: https://sashiko.dev/#/patchset/20260319154937.3619520-1-sascha.bischoff%40arm.com
Link: https://patch.msgid.link/20260401103611.357092-3-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
| -rw-r--r-- | arch/arm64/kvm/sys_regs.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index e1001544d4f4..18e2d2fccedb 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -5772,6 +5772,12 @@ int kvm_finalize_sys_regs(struct kvm_vcpu *vcpu) guard(mutex)(&kvm->arch.config_lock); + if (vcpu_has_nv(vcpu)) { + int ret = kvm_init_nv_sysregs(vcpu); + if (ret) + return ret; + } + if (kvm_vm_has_ran_once(kvm)) return 0; @@ -5820,12 +5826,6 @@ int kvm_finalize_sys_regs(struct kvm_vcpu *vcpu) kvm_vgic_finalize_idregs(kvm); } - if (vcpu_has_nv(vcpu)) { - int ret = kvm_init_nv_sysregs(vcpu); - if (ret) - return ret; - } - return 0; } |
