aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kvm/lib/x86/processor.c
diff options
context:
space:
mode:
authorOliver Upton <[email protected]>2025-05-23 19:47:20 +0000
committerMarc Zyngier <[email protected]>2025-05-30 08:11:29 +0000
commit05b9405f2fa1848e984f231708fa1e5d385e4d27 (patch)
tree3cda702f22b0cec3f946907978fdb21dae6db42b /tools/testing/selftests/kvm/lib/x86/processor.c
parentKVM: arm64: Protect vLPI translation with vgic_irq::irq_lock (diff)
downloadkernel-05b9405f2fa1848e984f231708fa1e5d385e4d27.tar.gz
kernel-05b9405f2fa1848e984f231708fa1e5d385e4d27.zip
KVM: arm64: Resolve vLPI by host IRQ in vgic_v4_unset_forwarding()
The virtual mapping and "GSI" routing of a particular vLPI is subject to change in response to the guest / userspace. This can be pretty annoying to deal with when KVM needs to track the physical state that's managed for vLPI direct injection. Make vgic_v4_unset_forwarding() resilient by using the host IRQ to resolve the vgic IRQ. Since this uses the LPI xarray directly, finding the ITS by doorbell address + grabbing it's its_lock is no longer necessary. Note that matching the right ITS / ITE is already handled in vgic_v4_set_forwarding(), and unless there's a bug in KVM's VGIC ITS emulation the virtual mapping that should remain stable for the lifetime of the vLPI mapping. Tested-by: Sweet Tea Dorminy <[email protected]> Signed-off-by: Oliver Upton <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Marc Zyngier <[email protected]>
Diffstat (limited to 'tools/testing/selftests/kvm/lib/x86/processor.c')
0 files changed, 0 insertions, 0 deletions