Dirk Mueller
7f9fae1b89
- Do not use obsolete pci_enable_msix for() kernel > 4.8 [+0006-kni-fix-ethtool-build-with-kernel-4.11.patch, +0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch] - Do not use obsolete pci_enable_msix for() kernel > 4.8 [+0006-kni-fix-ethtool-build-with-kernel-4.11.patch, +0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch] OBS-URL: https://build.opensuse.org/request/show/511193 OBS-URL: https://build.opensuse.org/package/show/network/dpdk?expand=0&rev=54
79 lines
2.7 KiB
Diff
79 lines
2.7 KiB
Diff
From 99bb58f3adc73046b538874a0944578146ee1189 Mon Sep 17 00:00:00 2001
|
|
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
Date: Thu, 20 Apr 2017 15:11:23 +0200
|
|
Subject: [PATCH] igb_uio: switch to new irq function for MSI-X
|
|
|
|
pci_enable_msix() will be removed in kernel 4.12.
|
|
The new API pci_alloc_irq_vectors() is available
|
|
since linux 4.8, thus let's use it.
|
|
|
|
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aff171641d18
|
|
Link: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=4244de1c64de
|
|
|
|
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
|
|
Reviewed-by: David Marchand <david.marchand@6wind.com>
|
|
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
|
|
|
|
From 62d37a57656607a622a546c88cca5d78b23c4730 Mon Sep 17 00:00:00 2001
|
|
From: Nirmoy Das <ndas@suse.de>
|
|
Date: Tue, 18 Jul 2017 13:36:25 +0200
|
|
Subject: [PATCH] backport upstream patch
|
|
|
|
---
|
|
lib/librte_eal/linuxapp/igb_uio/compat.h | 4 ++++
|
|
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 11 +++++++++++
|
|
2 files changed, 15 insertions(+)
|
|
|
|
diff --git a/lib/librte_eal/linuxapp/igb_uio/compat.h b/lib/librte_eal/linuxapp/igb_uio/compat.h
|
|
index 0d781e4..b800a53 100644
|
|
--- a/lib/librte_eal/linuxapp/igb_uio/compat.h
|
|
+++ b/lib/librte_eal/linuxapp/igb_uio/compat.h
|
|
@@ -123,3 +123,7 @@ static bool pci_check_and_mask_intx(struct pci_dev *pdev)
|
|
}
|
|
|
|
#endif /* < 3.3.0 */
|
|
+
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
|
|
+#define HAVE_PCI_ENABLE_MSIX
|
|
+#endif
|
|
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
|
|
index df41e45..683cd8c 100644
|
|
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
|
|
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
|
|
@@ -325,7 +325,9 @@ static int
|
|
igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
|
{
|
|
struct rte_uio_pci_dev *udev;
|
|
+#ifdef HAVE_PCI_ENABLE_MSIX
|
|
struct msix_entry msix_entry;
|
|
+#endif
|
|
int err;
|
|
|
|
udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
|
|
@@ -379,6 +381,7 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
|
switch (igbuio_intr_mode_preferred) {
|
|
case RTE_INTR_MODE_MSIX:
|
|
/* Only 1 msi-x vector needed */
|
|
+#ifdef HAVE_PCI_ENABLE_MSIX
|
|
msix_entry.entry = 0;
|
|
if (pci_enable_msix(dev, &msix_entry, 1) == 0) {
|
|
dev_dbg(&dev->dev, "using MSI-X");
|
|
@@ -386,6 +389,14 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
|
udev->mode = RTE_INTR_MODE_MSIX;
|
|
break;
|
|
}
|
|
+#else
|
|
+ if (pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_MSIX) == 1) {
|
|
+ dev_dbg(&dev->dev, "using MSI-X");
|
|
+ udev->info.irq = pci_irq_vector(dev, 0);
|
|
+ udev->mode = RTE_INTR_MODE_MSIX;
|
|
+ break;
|
|
+ }
|
|
+#endif
|
|
/* fall back to INTX */
|
|
case RTE_INTR_MODE_LEGACY:
|
|
if (pci_intx_mask_supported(dev)) {
|
|
--
|
|
2.13.2
|
|
|