aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorOliver Upton <oliver.upton@linux.dev>2025-02-26 10:31:22 -0800
committerOliver Upton <oliver.upton@linux.dev>2025-02-26 13:22:48 -0800
commitd0b79563fd60c063ee4ad2a76024e60338ed3881 (patch)
tree630d40d43520bfe1a82b47b46047efd1589269ba
parentKVM: arm64: vgic-v4: Only attempt vLPI mapping for actual MSIs (diff)
downloadwireguard-linux-d0b79563fd60c063ee4ad2a76024e60338ed3881.tar.xz
wireguard-linux-d0b79563fd60c063ee4ad2a76024e60338ed3881.zip
KVM: arm64: vgic-v4: Only WARN for HW IRQ mismatch when unmapping vLPI
The VMM or guest can easily screw up GICv4 vLPI injection by misconfiguring the MSI or the virtual ITS. Don't fuss over it; limit the WARN in vgic_v4_unset_forwarding() to fire in the worrying case where an unrelated HW IRQ was mapped to a vLPI. Reported-by: Sudheer Dantuluri <dantuluris@google.com> Tested-by: Sudheer Dantuluri <dantuluris@google.com> Acked-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20250226183124.82094-3-oliver.upton@linux.dev Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Diffstat (limited to '')
-rw-r--r--arch/arm64/kvm/vgic/vgic-v4.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c
index eedecbbbcf31..3e1de40720e0 100644
--- a/arch/arm64/kvm/vgic/vgic-v4.c
+++ b/arch/arm64/kvm/vgic/vgic-v4.c
@@ -512,7 +512,7 @@ int kvm_vgic_v4_unset_forwarding(struct kvm *kvm, int virq,
if (ret)
goto out;
- WARN_ON(!(irq->hw && irq->host_irq == virq));
+ WARN_ON(irq->hw && irq->host_irq != virq);
if (irq->hw) {
atomic_dec(&irq->target_vcpu->arch.vgic_cpu.vgic_v3.its_vpe.vlpi_count);
irq->hw = false;