+ Casey On Wednesday, March 03/07/18, 2018 at 13:17:23 +1100, Alexey Kardashevskiy wrote: > On 06/03/18 17:05, Arjun Vynipadath wrote: > > Hi Alexey, > > Commit 2170dd0("vfio-pci: Mask INTx if a device is not capabable of enabling it") is causing 'Masking broken INTx support' messages everytime we powerup a VM with a SRIOV Virtual Function device attached. > > > > PCI SRIOV Virtual Functions aren't allowed to support traditional INTx Pin Interrupts as per Section 5 of the Single Root I/O Virtualization and Sharing Specification, Revision 1.0 (September 11, 2007). > > Can you make us sure if this is what you intended? > > The PCI device does not support INTx, VFIO detects it and masks the > support, all correct. VFIO does not make distinction between PF and VF, > hence no special handling for SRIOV. If the message is the only problem, we > could do something like this, I am not sure there is much value in it though: > > > diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c > index b0f7594..b181ca6 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); > > > > -- > Alexey