KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
authorOliver Upton <oliver.upton@linux.dev>
Wed, 21 Feb 2024 09:27:32 +0000 (09:27 +0000)
committerMarc Zyngier <maz@kernel.org>
Wed, 21 Feb 2024 10:06:41 +0000 (10:06 +0000)
It is possible that an LPI mapped in a different ITS gets unmapped while
handling the MOVALL command. If that is the case, there is no state that
can be migrated to the destination. Silently ignore it and continue
migrating other LPIs.

Cc: stable@vger.kernel.org
Fixes: ff9c114394aa ("KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE")
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240221092732.4126848-3-oliver.upton@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/vgic/vgic-its.c

index 082448de27ed9d77791b462e3596335e2c47c0de..28a93074eca17dbb10c7c75e23baf72edf126391 100644 (file)
@@ -1435,6 +1435,8 @@ static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
 
        for (i = 0; i < irq_count; i++) {
                irq = vgic_get_irq(kvm, NULL, intids[i]);
+               if (!irq)
+                       continue;
 
                update_affinity(irq, vcpu2);