diff options
-rw-r--r-- | hw/vfio/pci.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index d7fe06715c..4fa387f043 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -826,9 +826,11 @@ static void vfio_msix_disable(VFIOPCIDevice *vdev) } } - if (vdev->nr_vectors) { - vfio_disable_irqindex(&vdev->vbasedev, VFIO_PCI_MSIX_IRQ_INDEX); - } + /* + * Always clear MSI-X IRQ index. A PF device could have enabled + * MSI-X with no vectors. See vfio_msix_enable(). + */ + vfio_disable_irqindex(&vdev->vbasedev, VFIO_PCI_MSIX_IRQ_INDEX); vfio_msi_disable_common(vdev); vfio_intx_enable(vdev, &err); |