* [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports
@ 2024-02-26 21:38 Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 1/2] KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table() Oliver Upton
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Oliver Upton @ 2024-02-26 21:38 UTC (permalink / raw)
To: stable; +Cc: maz, gregkh, Oliver Upton
Oliver Upton (2):
KVM: arm64: vgic-its: Test for valid IRQ in
its_sync_lpi_pending_table()
KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
virt/kvm/arm/vgic/vgic-its.c | 5 +++++
1 file changed, 5 insertions(+)
base-commit: ab219d38aef198d26083cc800954d352acd5137b
--
2.44.0.rc1.240.g4c46232300-goog
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 4.19.y 1/2] KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table()
2024-02-26 21:38 [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Oliver Upton
@ 2024-02-26 21:38 ` Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 2/2] KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler Oliver Upton
2024-02-27 9:05 ` [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Greg KH
2 siblings, 0 replies; 4+ messages in thread
From: Oliver Upton @ 2024-02-26 21:38 UTC (permalink / raw)
To: stable; +Cc: maz, gregkh, Oliver Upton
commit 8d3a7dfb801d157ac423261d7cd62c33e95375f8 upstream.
vgic_get_irq() may not return a valid descriptor if there is no ITS that
holds a valid translation for the specified INTID. If that is the case,
it is safe to silently ignore it and continue processing the LPI pending
table.
Cc: stable@vger.kernel.org
Fixes: 33d3bc9556a7 ("KVM: arm64: vgic-its: Read initial LPI pending table")
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240221092732.4126848-2-oliver.upton@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
virt/kvm/arm/vgic/vgic-its.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index cb36774a750c..30d1809f720b 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -469,6 +469,9 @@ static int its_sync_lpi_pending_table(struct kvm_vcpu *vcpu)
}
irq = vgic_get_irq(vcpu->kvm, NULL, intids[i]);
+ if (!irq)
+ continue;
+
spin_lock_irqsave(&irq->irq_lock, flags);
irq->pending_latch = pendmask & (1U << bit_nr);
vgic_queue_irq_unlock(vcpu->kvm, irq, flags);
--
2.44.0.rc1.240.g4c46232300-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 4.19.y 2/2] KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
2024-02-26 21:38 [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 1/2] KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table() Oliver Upton
@ 2024-02-26 21:38 ` Oliver Upton
2024-02-27 9:05 ` [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Greg KH
2 siblings, 0 replies; 4+ messages in thread
From: Oliver Upton @ 2024-02-26 21:38 UTC (permalink / raw)
To: stable; +Cc: maz, gregkh, Oliver Upton
commit 85a71ee9a0700f6c18862ef3b0011ed9dad99aca upstream.
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>
---
virt/kvm/arm/vgic/vgic-its.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index 30d1809f720b..2fb26bd3106e 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -1232,6 +1232,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);
--
2.44.0.rc1.240.g4c46232300-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports
2024-02-26 21:38 [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 1/2] KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table() Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 2/2] KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler Oliver Upton
@ 2024-02-27 9:05 ` Greg KH
2 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2024-02-27 9:05 UTC (permalink / raw)
To: Oliver Upton; +Cc: stable, maz
On Mon, Feb 26, 2024 at 09:38:20PM +0000, Oliver Upton wrote:
> Oliver Upton (2):
> KVM: arm64: vgic-its: Test for valid IRQ in
> its_sync_lpi_pending_table()
> KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
>
> virt/kvm/arm/vgic/vgic-its.c | 5 +++++
> 1 file changed, 5 insertions(+)
All now queued up, thanks!
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-27 9:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-26 21:38 [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 1/2] KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table() Oliver Upton
2024-02-26 21:38 ` [PATCH 4.19.y 2/2] KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler Oliver Upton
2024-02-27 9:05 ` [PATCH 4.19.y 0/2] KVM: arm64: VGIC ITS fix backports Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox