diff options
author | 2025-05-23 12:47:20 -0700 | |
---|---|---|
committer | 2025-05-30 09:11:29 +0100 | |
commit | 05b9405f2fa1848e984f231708fa1e5d385e4d27 (patch) | |
tree | 3cda702f22b0cec3f946907978fdb21dae6db42b /tools/perf/scripts/python/export-to-postgresql.py | |
parent | KVM: arm64: Protect vLPI translation with vgic_irq::irq_lock (diff) | |
download | wireguard-linux-05b9405f2fa1848e984f231708fa1e5d385e4d27.tar.xz wireguard-linux-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 <sweettea-kernel@dorminy.me>
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250523194722.4066715-4-oliver.upton@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions