From: Zhenzhong Duan <zhenzhong.d...@intel.com> When vfio realize fails, INTx isn't disabled if it has been enabled. This may confuse host side with unhandled interrupt report.
Fixes: c5478fea27ac ("vfio/pci: Respond to KVM irqchip change notifier") Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com> Reviewed-by: Joao Martins <joao.m.mart...@oracle.com> Reviewed-by: Cédric Le Goater <c...@redhat.com> Signed-off-by: Cédric Le Goater <c...@redhat.com> (cherry picked from commit adee0da0368f50b3ee934cdeeb6076466dabb268) Signed-off-by: Michael Tokarev <m...@tls.msk.ru> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 92a45de4c3..71509f9c7e 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3158,6 +3158,9 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) return; out_deregister: + if (vdev->interrupt == VFIO_INT_INTx) { + vfio_intx_disable(vdev); + } pci_device_set_intx_routing_notifier(&vdev->pdev, NULL); if (vdev->irqchip_change_notifier.notify) { kvm_irqchip_remove_change_notifier(&vdev->irqchip_change_notifier); -- 2.39.2