diff mbox

vfio/pci: Add Intel XXV710 to hidden INTx devices

Message ID 20170607190132.22711.46831.stgit@gimli.home (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Williamson June 7, 2017, 7:01 p.m. UTC
XXV710 has the same broken INTx behavior as the rest of the X/XL710
series, the interrupt status register is not wired to report pending
INTx interrupts, thus we never associate the interrupt to the device.
Extend the device IDs to include these so that we hide that the
device supports INTx at all to the user.

Reported-by: Stefan Assmann <sassmann@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
---
 drivers/vfio/pci/vfio_pci.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Christoph Hellwig June 8, 2017, 8 a.m. UTC | #1
On Wed, Jun 07, 2017 at 01:01:46PM -0600, Alex Williamson wrote:
> XXV710 has the same broken INTx behavior as the rest of the X/XL710
> series, the interrupt status register is not wired to report pending
> INTx interrupts, thus we never associate the interrupt to the device.
> Extend the device IDs to include these so that we hide that the
> device supports INTx at all to the user.

Is vfio really the right place for the list?  Shouldn't this be
keyed off the core PCI quirk for these devices?
Alex Williamson June 8, 2017, 1:06 p.m. UTC | #2
[+linux-pci]

On Thu, 8 Jun 2017 01:00:17 -0700
Christoph Hellwig <hch@infradead.org> wrote:

> On Wed, Jun 07, 2017 at 01:01:46PM -0600, Alex Williamson wrote:
> > XXV710 has the same broken INTx behavior as the rest of the X/XL710
> > series, the interrupt status register is not wired to report pending
> > INTx interrupts, thus we never associate the interrupt to the device.
> > Extend the device IDs to include these so that we hide that the
> > device supports INTx at all to the user.  
> 
> Is vfio really the right place for the list?  Shouldn't this be
> keyed off the core PCI quirk for these devices?

I sent a separate patch to add these devices to the regular broken INTx
quirk in pci-core:

http://www.spinics.net/lists/linux-pci/msg61971.html

We don't currently have a device flag to specify that INTx is broken in
this particular way that vfio can work around, nor do I really know how
other drivers might make use of this info.  If I'm wrong, then
certainly let's make a common way to do this, but this patch is just a
trivial extension to an existing mechanism.  Thanks,

Alex
Jesse Brandeburg June 8, 2017, 5:19 p.m. UTC | #3
On Wed, 7 Jun 2017 13:01:46 -0600
Alex Williamson <alex.williamson@redhat.com> wrote:

> XXV710 has the same broken INTx behavior as the rest of the X/XL710
> series, the interrupt status register is not wired to report pending
> INTx interrupts, thus we never associate the interrupt to the device.
> Extend the device IDs to include these so that we hide that the
> device supports INTx at all to the user.
> 

Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
diff mbox

Patch

diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index 324c52e3a1a4..063c1ce6fa42 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -195,11 +195,11 @@  static bool vfio_pci_nointx(struct pci_dev *pdev)
 	switch (pdev->vendor) {
 	case PCI_VENDOR_ID_INTEL:
 		switch (pdev->device) {
-		/* All i40e (XL710/X710) 10/20/40GbE NICs */
+		/* All i40e (XL710/X710/XXV710) 10/20/25/40GbE NICs */
 		case 0x1572:
 		case 0x1574:
 		case 0x1580 ... 0x1581:
-		case 0x1583 ... 0x1589:
+		case 0x1583 ... 0x158b:
 		case 0x37d0 ... 0x37d2:
 			return true;
 		default: