fix kni DKMS build with Linux 5.1 kernels (LP: #1827102) 22/19322/1
authorChristian Ehrhardt <christian.ehrhardt@canonical.com>
Fri, 3 May 2019 12:44:18 +0000 (14:44 +0200)
committerChristian Ehrhardt <christian.ehrhardt@canonical.com>
Fri, 3 May 2019 12:44:18 +0000 (14:44 +0200)
Change-Id: Ib0782e7c1a908ac982f136d1e4aa9dee7e76362e
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
debian/patches/lp-1827102-kni-fix-build-with-Linux-5.1.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/lp-1827102-kni-fix-build-with-Linux-5.1.patch b/debian/patches/lp-1827102-kni-fix-build-with-Linux-5.1.patch
new file mode 100644 (file)
index 0000000..c06448a
--- /dev/null
@@ -0,0 +1,73 @@
+From db9178c24c1643b5ef58f2a9ff87c3eef8e0e1e4 Mon Sep 17 00:00:00 2001
+From: Ferruh Yigit <ferruh.yigit@intel.com>
+Date: Mon, 8 Apr 2019 15:22:26 +0100
+Subject: [PATCH] kni: fix build with Linux 5.1
+
+Build error seen with Linux kernel 5.1 and
+when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.
+
+Build error:
+kernel/linux/kni/igb_main.c:2352:18:
+  error: initialization of ... from incompatible pointer type ...
+  [-Werror=incompatible-pointer-types]
+    .ndo_fdb_add  = igb_ndo_fdb_add,
+                      ^~~~~~~~~~~~~~~
+
+ndo_fdb_add() is changed in Linux kernel version 5.1 and now requires
+a new parameter, 'struct netlink_ext_ack *extack':
+Linux Commit 87b0984ebfab ("net: Add extack argument to ndo_fdb_add()")
+
+ndo_fdb_add() parameter updated with compile time Linux kernel version
+check.
+
+Cc: stable@dpdk.org
+
+Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
+Tested-by: Bruce Richardson <bruce.richardson@intel.com>
+Reviewed-by: Rami Rosen <ramirose@gmail.com>
+
+Origin: upstream, https://git.dpdk.org/dpdk/commit/?id=db9178c24c1643b5ef58f2a9ff87c3eef8e0e1e4
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1827102
+Last-Update: 2019-05-03
+
+---
+ kernel/linux/kni/ethtool/igb/igb_main.c | 6 ++++++
+ kernel/linux/kni/ethtool/igb/kcompat.h  | 4 ++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/kernel/linux/kni/ethtool/igb/igb_main.c b/kernel/linux/kni/ethtool/igb/igb_main.c
+index 0b4faeae5..cda2b063d 100644
+--- a/kernel/linux/kni/ethtool/igb/igb_main.c
++++ b/kernel/linux/kni/ethtool/igb/igb_main.c
+@@ -2112,7 +2112,13 @@ static int igb_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
+ #ifdef HAVE_NDO_FDB_ADD_VID
+                          u16 vid,
+ #endif
++#ifdef HAVE_NDO_FDB_ADD_EXTACK
++                         u16 flags,
++                         struct netlink_ext_ack *extack)
++#else
+                          u16 flags)
++#endif
++
+ #else
+ static int igb_ndo_fdb_add(struct ndmsg *ndm,
+                          struct net_device *dev,
+diff --git a/kernel/linux/kni/ethtool/igb/kcompat.h b/kernel/linux/kni/ethtool/igb/kcompat.h
+index 11b15f3a9..649a69c81 100644
+--- a/kernel/linux/kni/ethtool/igb/kcompat.h
++++ b/kernel/linux/kni/ethtool/igb/kcompat.h
+@@ -3945,6 +3945,10 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
+ #define HAVE_NDO_BRIDGE_SETLINK_EXTACK
+ #endif /* >= 5.0.0 */
++#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) )
++#define HAVE_NDO_FDB_ADD_EXTACK
++#endif /* >= 5.1.0 */
++
+ #if defined(timer_setup) && defined(from_timer)
+ #define HAVE_TIMER_SETUP
+ #endif
+-- 
+2.21.0
+
index 2e1b63d..7f8ef44 100644 (file)
@@ -3,3 +3,4 @@
 0005-build-use-dependency-instead-of-find_library.patch
 0006-build-reorder-libraries-and-build-eal-before-cmdline.patch
 0007-build-use-dependency-for-libbsd-instead-of-manual-ap.patch
+lp-1827102-kni-fix-build-with-Linux-5.1.patch