vfio-pci: Disable INTx after MSI/X teardown
The MSI/X shutdown path can gratuitously enable INTx, which is not something we want to happen if we're dealing with broken INTx device. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
@@ -414,6 +414,13 @@ static void vfio_msi_disable(struct vfio_pci_device *vdev, bool msix)
|
|||||||
} else
|
} else
|
||||||
pci_disable_msi(pdev);
|
pci_disable_msi(pdev);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Both disable paths above use pci_intx_for_msi() to clear DisINTx
|
||||||
|
* via their shutdown paths. Restore for NoINTx devices.
|
||||||
|
*/
|
||||||
|
if (vdev->nointx)
|
||||||
|
pci_intx(pdev, 0);
|
||||||
|
|
||||||
vdev->irq_type = VFIO_PCI_NUM_IRQS;
|
vdev->irq_type = VFIO_PCI_NUM_IRQS;
|
||||||
vdev->num_ctx = 0;
|
vdev->num_ctx = 0;
|
||||||
kfree(vdev->ctx);
|
kfree(vdev->ctx);
|
||||||
|
Reference in New Issue
Block a user