net/virtio: fix MSI-X for modern devices
[dpdk.git] / drivers / net / virtio / virtio_pci.c
index b767c03..ecad46e 100644 (file)
@@ -50,6 +50,7 @@
  */
 #define PCI_CAPABILITY_LIST    0x34
 #define PCI_CAP_ID_VNDR                0x09
+#define PCI_CAP_ID_MSIX                0x11
 
 /*
  * The remaining space is defined by each driver as the per-driver
@@ -650,6 +651,9 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
                        break;
                }
 
+               if (cap.cap_vndr == PCI_CAP_ID_MSIX)
+                       hw->use_msix = 1;
+
                if (cap.cap_vndr != PCI_CAP_ID_VNDR) {
                        PMD_INIT_LOG(DEBUG,
                                "[%2x] skipping non VNDR cap id: %02x",