Commit 2170dd04316e ("vfio-pci: Mask INTx if a device is not capabable of enabling it") is causing 'Masking broken INTx support' messages every time when a PCI without INTx support is enabled. This message is intended to appear when a device known for broken INTx is being enabled. However the message also appears on IOV virtual functions where INTx cannot possibly be enabled so saying that the "broken" support is masked is not correct. This changes the message to only appear when the device advertises INTx (via PCI_INTERRUPT_PIN != 0) but does not implement PCI 2.3 INTx masking. Fixes: 2170dd04316e ("vfio-pci: Mask INTx if a device is not capabable of enabling it") Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> --- drivers/vfio/pci/vfio_pci.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c index b0f7594..7f2ec47 100644 --- a/drivers/vfio/pci/vfio_pci.c +++ b/drivers/vfio/pci/vfio_pci.c @@ -245,7 +245,13 @@ static int vfio_pci_enable(struct vfio_pci_device *vdev) if (likely(!nointxmask)) { if (vfio_pci_nointx(pdev)) { - dev_info(&pdev->dev, "Masking broken INTx support\n"); + u8 pin = 0; + + pci_read_config_byte(vdev->pdev, PCI_INTERRUPT_PIN, + &pin); + if (pin) + dev_info(&pdev->dev, + "Masking broken INTx support\n"); vdev->nointx = true; pci_intx(pdev, 0); } else -- 2.11.0