linux/arch/arm64
Oliver Upton 05b9405f2f 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>
2025-05-30 09:11:29 +01:00
..
boot soc: devicetree updates for 6.15 2025-03-27 09:01:37 -07:00
configs Qualcomm Arm64 defconfig updates for v6.15 2025-03-19 22:30:07 +01:00
crypto crypto: lib/chacha - remove unused arch-specific init support 2025-03-21 17:39:06 +08:00
hyperv Drivers: hv: Export some functions for use by root partition module 2025-03-20 21:23:04 +00:00
include arm64: sysreg: Drag linux/kconfig.h to work around vdso build issue 2025-05-30 09:09:01 +01:00
kernel Merge branch kvm-arm64/misc-6.16 into kvmarm-master/next 2025-05-23 10:59:43 +01:00
kvm KVM: arm64: Resolve vLPI by host IRQ in vgic_v4_unset_forwarding() 2025-05-30 09:11:29 +01:00
lib bpf-next-6.15 2025-03-30 12:43:03 -07:00
mm arm64 fixes: 2025-04-03 12:07:01 -07:00
net bpf, arm64: Support load-acquire and store-release instructions 2025-03-15 11:48:29 -07:00
tools Merge branch kvm-arm64/misc-6.16 into kvmarm-master/next 2025-05-23 10:59:43 +01:00
xen
Kbuild
Kconfig arm64: errata: Work around AmpereOne's erratum AC04_CPU_23 2025-05-19 12:46:26 +01:00
Kconfig.debug
Kconfig.platforms STM32 DT for v6.15, round 1 2025-03-19 21:42:19 +01:00
Makefile kbuild: rust: add rustc-min-version support function 2025-03-15 21:19:32 +09:00