[dpdk-dev] [PATCH] kni: fix pci_enable_msix_range error handling
Andy Roulin
aroulin at cumulusnetworks.com
Mon Dec 18 07:16:30 CET 2017
pci_enable_msix_range's return value has a different meaning than what
was previously returned by pci_enable_msix.
"It returns a negative errno if an error occurs. If it succeeds, it
returns the actual number of interrupts allocated and indicates the
successful configuration of MSI-X capability structure with new
allocated MSI-X interrupts."
The following commit introduced pci_enable_msix_range:
dpdk: 9fb3cd2c ("kni: fix ethtool build with kernel 4.11")
http://dpdk.org/dev/patchwork/patch/24076/
Signed-off-by: Andy Roulin <aroulin at cumulusnetworks.com>
---
lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
index e0f427a..32ef3b9 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
@@ -1043,14 +1043,16 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix)
#ifdef HAVE_PCI_ENABLE_MSIX
err = pci_enable_msix(pdev,
adapter->msix_entries, numvecs);
+ if (err == 0)
+ break;
#else
err = pci_enable_msix_range(pdev,
adapter->msix_entries,
numvecs,
numvecs);
-#endif
- if (err == 0)
+ if (err < 0)
break;
+#endif
}
/* MSI-X failed, so fall through and try MSI */
dev_warn(pci_dev_to_dev(pdev), "Failed to initialize MSI-X interrupts. "
--
2.1.4
More information about the dev
mailing list