Re: [PATCH v5 5/6] KVM: x86: ioapic: Clear irr_delivered on level-triggered RTE
"Huang, Kai" <[email protected]>
| Newsgroups | org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 2026-08-12 at 16:39 +0800, Hao Zhang wrote: > From: Hao Zhang <[email protected]> > > irr_delivered hides delivered edge interrupts from KVM_GET_IRQCHIP. > The interrupt remains in IRR until the guest deasserts the line. > > The guest can reprogram an IOAPIC RTE from edge to level via MMIO. > If an edge interrupt was delivered before the trigger mode change, a > stale irr_delivered bit can incorrectly mask a subsequent pending level > interrupt from KVM_GET_IRQCHIP. > > That can cause userspace to migrate the VM without a pending level > interrupt that is still present in KVM's in-kernel IOAPIC. > > Clear irr_delivered when the RTE is configured for level-triggered > interrupts. > > Fixes: 5bda6eed2e36 ("KVM: ioapic: Record edge-triggered interrupts delivery status") > Signed-off-by: Hao Zhang <[email protected]> Reviewed-by: Kai Huang <[email protected]>