]> www.infradead.org Git - users/jedix/linux-maple.git/commit
KVM: arm64: nv: Handle ZCR_EL2 traps
authorOliver Upton <oliver.upton@linux.dev>
Thu, 20 Jun 2024 16:46:40 +0000 (16:46 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Thu, 20 Jun 2024 19:01:20 +0000 (19:01 +0000)
commitb3d29a8230998b36afecf494b199211d26052785
treeae515f6812ada34d266e31c1331933685ff4d8ba
parent399debfc97493130167663336a2c3d0d16c2da79
KVM: arm64: nv: Handle ZCR_EL2 traps

Unlike other SVE-related registers, ZCR_EL2 takes a sysreg trap to EL2
when HCR_EL2.NV = 1. KVM still needs to honor the guest hypervisor's
trap configuration, which expects an SVE trap (i.e. ESR_EL2.EC = 0x19)
when CPTR traps are enabled for the vCPU's current context.

Otherwise, if the guest hypervisor has traps disabled, emulate the
access by mapping the requested VL into ZCR_EL1.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240620164653.1130714-4-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/include/asm/kvm_emulate.h
arch/arm64/include/asm/kvm_host.h
arch/arm64/kvm/sys_regs.c