diff options
| author | Marc Zyngier <maz@kernel.org> | 2025-09-26 12:41:08 -0700 |
|---|---|---|
| committer | Marc Zyngier <maz@kernel.org> | 2025-10-13 14:17:03 +0100 |
| commit | 9a1950f97741a23fc68a7b2cfd487e059d389be5 (patch) | |
| tree | 5809f771bfa85d6e88c25ca70d89246a0c95458e /arch | |
| parent | KVM: arm64: nv: Don't treat ZCR_EL2 as a 'mapped' register (diff) | |
| download | linux-9a1950f97741a23fc68a7b2cfd487e059d389be5.tar.gz linux-9a1950f97741a23fc68a7b2cfd487e059d389be5.zip | |
KVM: arm64: nv: Don't advance PC when pending an SVE exception
Jan reports that running a nested guest on Neoverse-V2 leads to a WARN
in the host due to simultaneously pending an exception and PC increment
after an access to ZCR_EL2.
Returning true from a sysreg accessor is an indication that the sysreg
instruction has been retired. Of course this isn't the case when we've
pended a synchronous SVE exception for the guest. Fix the return value
and let the exception propagate to the guest as usual.
Reported-by: Jan Kotas <jank@cadence.com>
Closes: https://lore.kernel.org/kvmarm/865xd61tt5.wl-maz@kernel.org/
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm64/kvm/sys_regs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 4a75e5f0c259..ee8a7033c85b 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -2704,7 +2704,7 @@ static bool access_zcr_el2(struct kvm_vcpu *vcpu, if (guest_hyp_sve_traps_enabled(vcpu)) { kvm_inject_nested_sve_trap(vcpu); - return true; + return false; } if (!p->is_write) { |
