aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch')
-rw-r--r--debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch b/debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch
new file mode 100644
index 00000000..cd8c21be
--- /dev/null
+++ b/debian/patches/kni-fix-ethtool-build-with-kernel-4.11.patch
@@ -0,0 +1,65 @@
+From 9fb3cd2c041eeca30b6c46e5d555d857d6096ae7 Mon Sep 17 00:00:00 2001
+From: Ferruh Yigit <ferruh.yigit@intel.com>
+Date: Wed, 3 May 2017 17:00:16 +0100
+Subject: [PATCH] kni: fix ethtool build with kernel 4.11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+build error:
+.../lib/librte_eal/linuxapp/kni/igb_main.c:1034:10:
+error: implicit declaration of function ‘pci_enable_msix’
+ err = pci_enable_msix(pdev,
+ ^~~~~~~~~~~~~~~
+
+This build error observed when CONFIG_RTE_KNI_KMOD_ETHTOOL config option
+enabled.
+
+Following Linux commit removes the pci_enable_msix()
+Linux: 4244de1c64de ("PCI: remove pci_enable_msix")
+
+Switch to pci_enable_msix_range() for kernel > 4.8 since current Linux
+igb driver uses this function.
+
+Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
+Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
+---
+ lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 7 +++++++
+ lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 4 ++++
+ 2 files changed, 11 insertions(+)
+
+Origin: http://dpdk.org/browse/dpdk/commit/?id=9fb3cd2c041eeca30b6c46e5d555d857d6096ae7
+Original-Author: Ferruh Yigit <ferruh.yigit@intel.com>
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1691830
+Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
+Last-Update: 2017-05-19
+
+--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
+@@ -1031,8 +1031,15 @@
+ for (i = 0; i < numvecs; i++)
+ adapter->msix_entries[i].entry = i;
+
++#ifdef HAVE_PCI_ENABLE_MSIX
+ err = pci_enable_msix(pdev,
+ adapter->msix_entries, numvecs);
++#else
++ err = pci_enable_msix_range(pdev,
++ adapter->msix_entries,
++ numvecs,
++ numvecs);
++#endif
+ if (err == 0)
+ break;
+ }
+--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
+@@ -3933,4 +3933,8 @@
+ #define HAVE_VF_VLAN_PROTO
+ #endif /* >= 4.9.0 */
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
++#define HAVE_PCI_ENABLE_MSIX
++#endif
++
+ #endif /* _KCOMPAT_H_ */