summaryrefslogtreecommitdiffstats
path: root/drivers/vfio
diff options
context:
space:
mode:
authorAlexey Kardashevskiy <aik@ozlabs.ru>2017-12-07 12:56:54 +1100
committerAlex Williamson <alex.williamson@redhat.com>2017-12-20 09:53:52 -0700
commit2170dd04316e0754cbbfa4892a25aead39d225f7 (patch)
treea7d3a2634f54a2e96c20334a9c4dd2b237736bec /drivers/vfio
parent1291a0d5049dbc06baaaf66a9ff3f53db493b19b (diff)
downloadop-kernel-dev-2170dd04316e0754cbbfa4892a25aead39d225f7.zip
op-kernel-dev-2170dd04316e0754cbbfa4892a25aead39d225f7.tar.gz
vfio-pci: Mask INTx if a device is not capabable of enabling it
At the moment VFIO rightfully assumes that INTx is supported if the interrupt pin is not set to zero in the device config space. However if that is not the case (the pin is not zero but pdev->irq is), vfio_intx_enable() fails. In order to prevent the userspace from trying to enable INTx when we know that it cannot work, let's mask the PCI_INTERRUPT_PIN register. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio')
-rw-r--r--drivers/vfio/pci/vfio_pci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index f041b1a..a98681d 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -207,6 +207,9 @@ static bool vfio_pci_nointx(struct pci_dev *pdev)
}
}
+ if (!pdev->irq)
+ return true;
+
return false;
}
OpenPOWER on IntegriCloud