summaryrefslogtreecommitdiffstats
path: root/meta-isg
diff options
context:
space:
mode:
authorAnuj Mittal <anujx.mittal@intel.com>2015-10-08 23:50:00 +0800
committerSaul Wold <sgw@linux.intel.com>2015-10-19 08:46:00 -0700
commit723b2078aec8382b52d47bcb4bcc633b8e73aca9 (patch)
treea4013713354378643123f9f9b62f564633355e95 /meta-isg
parent6e91701dcf68f9351db8bb0b92eb2d26af1b8f7f (diff)
downloadmeta-intel-723b2078aec8382b52d47bcb4bcc633b8e73aca9.tar.gz
meta-isg: dpdk: fix v2.0.0 build with kernel 4.1
Backported fixes from upstream dpdk sources to ensure dpdk 2.0.0 compiles against kernel 4.1. Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta-isg')
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch49
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch58
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch70
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch69
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch141
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch54
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb6
7 files changed, 447 insertions, 0 deletions
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch
new file mode 100644
index 00000000..fef9108d
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch
@@ -0,0 +1,49 @@
1From a635f49a5873a104c8867bd1f6375d7a5064be5e Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anujx.mittal@intel.com>
3Date: Thu, 8 Oct 2015 22:46:13 +0800
4Subject: [PATCH] ixgbe: fix a build warning being treated as error
5
6Upstream-Status: Inappropriate [other]
7
8The change is part of a feature commit upstream (e0ba4e77605ab500518247cb6fab98dd3d87ba97)
9that we don't want to backport.
10
11Initialize the data byte to avoid warnings like:
12
13 lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c: In function 'ixgbe_read_i2c_combined_generic':
14 lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'low_bits' may be used
15 uninitialized in this function [-Werror=maybe-uninitialized]
16 *data |= bit << i;
17 ^
18 dpdk/2.0.0-r0/dpdk-2.0.0/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:120:5: note:
19 'low_bits' was declared here
20 u8 low_bits;
21 ^
22 lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'high_bits' may be used
23 uninitialized in this function [-Werror=maybe-uninitialized]
24 *data |= bit << i;
25 ^
26 lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:119:5: note: 'high_bits' was declared here
27 u8 high_bits;
28
29Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
30---
31 lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c | 2 +-
32 1 file changed, 1 insertion(+), 1 deletion(-)
33
34diff --git a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
35index 2305448..ec34753 100644
36--- a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
37+++ b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
38@@ -2095,7 +2095,7 @@ STATIC s32 ixgbe_clock_in_i2c_byte(struct ixgbe_hw *hw, u8 *data)
39 bool bit = 0;
40
41 DEBUGFUNC("ixgbe_clock_in_i2c_byte");
42-
43+ *data = 0;
44 for (i = 7; i >= 0; i--) {
45 ixgbe_clock_in_i2c_bit(hw, &bit);
46 *data |= bit << i;
47--
481.7.9.5
49
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch
new file mode 100644
index 00000000..625f0146
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch
@@ -0,0 +1,58 @@
1From 54117da1c945c046c6e3959db81511c78f876426 Mon Sep 17 00:00:00 2001
2From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
3Date: Tue, 28 Apr 2015 18:37:42 +0100
4Subject: [PATCH] kni: fix build with kernel 4.0
5
6Upstream-Status: Backport [2.1.0]
7
8Due to API changes in function pointer ndo_bridge_setlink
9(commit ad41faa8) and the rename of functions vlan_tx_*
10(commit df8a39de) in kernel 4.0, DPDK would not build.
11
12This patch adds the properly checks to fix the compilation.
13
14Reported-by: Stephen Hemminger <stephen@networkplumber.org>
15Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
16Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
17---
18 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 6 ++++++
19 lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 6 ++++++
20 2 files changed, 12 insertions(+)
21
22diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
23index 24b147d..bc3c6a3 100644
24--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
25+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
26@@ -2198,8 +2198,14 @@ static int igb_ndo_fdb_dump(struct sk_buff *skb,
27 #endif /* USE_DEFAULT_FDB_DEL_DUMP */
28
29 #ifdef HAVE_BRIDGE_ATTRIBS
30+#ifdef HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
31+static int igb_ndo_bridge_setlink(struct net_device *dev,
32+ struct nlmsghdr *nlh,
33+ u16 flags)
34+#else
35 static int igb_ndo_bridge_setlink(struct net_device *dev,
36 struct nlmsghdr *nlh)
37+#endif /* HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS */
38 {
39 struct igb_adapter *adapter = netdev_priv(dev);
40 struct e1000_hw *hw = &adapter->hw;
41diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
42index 2e7e714..54d1f86 100644
43--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
44+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
45@@ -3885,4 +3885,10 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
46 #define HAVE_NDO_FDB_ADD_VID
47 #endif /* >= 3.19.0 */
48
49+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) )
50+/* vlan_tx_xx functions got renamed to skb_vlan */
51+#define vlan_tx_tag_get skb_vlan_tag_get
52+#define vlan_tx_tag_present skb_vlan_tag_present
53+#define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
54+#endif /* 4.0.0 */
55 #endif /* _KCOMPAT_H_ */
56--
571.7.9.5
58
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch
new file mode 100644
index 00000000..b76f501e
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch
@@ -0,0 +1,70 @@
1From 97ebf687c7a635ac6f1b1e22293ed7405668c66e Mon Sep 17 00:00:00 2001
2From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
3Date: Fri, 26 Jun 2015 17:14:35 -0500
4Subject: [PATCH] kni: fix igb build with kernel 4.1
5
6Upstream-Status: Backport [2.1.0]
7
8ndo_bridge_getlink has changed in kernel release 4.1. It
9adds new parameter which breaks compilation.
10
11This patch add the properly checks to fix it.
12
13Linux: 46c264daaaa5 ("bridge/nl: remove wrong use of NLM_F_MULTI")
14
15Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
16Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
17Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
18---
19 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 10 ++++++++++
20 lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 5 +++++
21 2 files changed, 15 insertions(+)
22
23diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
24index bc3c6a3..b99b365 100644
25--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
26+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
27@@ -2250,8 +2250,14 @@ static int igb_ndo_bridge_setlink(struct net_device *dev,
28 }
29
30 #ifdef HAVE_BRIDGE_FILTER
31+#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
32+static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
33+ struct net_device *dev, u32 filter_mask,
34+ int nlflags)
35+#else
36 static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
37 struct net_device *dev, u32 filter_mask)
38+#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */
39 #else
40 static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
41 struct net_device *dev)
42@@ -2269,7 +2275,11 @@ static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
43 mode = BRIDGE_MODE_VEPA;
44
45 #ifdef HAVE_NDO_FDB_ADD_VID
46+#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
47+ return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0, nlflags);
48+#else
49 return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0);
50+#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */
51 #else
52 return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode);
53 #endif /* HAVE_NDO_FDB_ADD_VID */
54diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
55index 54d1f86..2673281 100644
56--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
57+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
58@@ -3891,4 +3891,9 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
59 #define vlan_tx_tag_present skb_vlan_tag_present
60 #define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
61 #endif /* 4.0.0 */
62+
63+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0) )
64+/* ndo_bridge_getlink adds new nlflags parameter */
65+#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
66+#endif /* >= 4.1.0 */
67 #endif /* _KCOMPAT_H_ */
68--
691.7.9.5
70
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch
new file mode 100644
index 00000000..1fcf12b4
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch
@@ -0,0 +1,69 @@
1From 289840d86ddaec3310ee1d6a85fe6f20384de615 Mon Sep 17 00:00:00 2001
2From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
3Date: Fri, 26 Jun 2015 17:14:37 -0500
4Subject: [PATCH 2/2] kni: fix vhost build with kernel 4.1
5
6Upstream-Status: Backport [2.1.0]
7
8Parameters from sendmsg and recvmsg has been changed in 4.1 kernel.
9The function pointers belong to proto_ops structure were updated removing
10the struct kiocb parameter.
11
12Linux: 1b784140474e ("net: Remove iocb argument from sendmsg and recvmsg")
13
14Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
15Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
16(cherry picked from commit 8d8fb8aa5836e719d5fb896693b16afabd5118b9)
17Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
18---
19 lib/librte_eal/linuxapp/kni/compat.h | 4 ++++
20 lib/librte_eal/linuxapp/kni/kni_vhost.c | 10 ++++++++++
21 2 files changed, 14 insertions(+)
22
23diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
24index 1ad22ba..cf100b6 100644
25--- a/lib/librte_eal/linuxapp/kni/compat.h
26+++ b/lib/librte_eal/linuxapp/kni/compat.h
27@@ -23,3 +23,7 @@
28 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
29 #define HAVE_IOV_ITER_MSGHDR
30 #endif
31+
32+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) )
33+#define HAVE_KIOCB_MSG_PARAM
34+#endif /* < 4.1.0 */
35diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
36index 83d3351..4611ff4 100644
37--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
38+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
39@@ -353,8 +353,13 @@ except:
40 }
41
42 static int
43+#ifdef HAVE_KIOCB_MSG_PARAM
44 kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
45 struct msghdr *m, size_t total_len)
46+#else
47+kni_sock_sndmsg(struct socket *sock,
48+ struct msghdr *m, size_t total_len)
49+#endif /* HAVE_KIOCB_MSG_PARAM */
50 {
51 struct kni_vhost_queue *q =
52 container_of(sock->sk, struct kni_vhost_queue, sk);
53@@ -387,8 +392,13 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
54 }
55
56 static int
57+#ifdef HAVE_KIOCB_MSG_PARAM
58 kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock,
59 struct msghdr *m, size_t len, int flags)
60+#else
61+kni_sock_rcvmsg(struct socket *sock,
62+ struct msghdr *m, size_t len, int flags)
63+#endif /* HAVE_KIOCB_MSG_PARAM */
64 {
65 int vnet_hdr_len = 0;
66 int pkt_len = 0;
67--
681.9.1
69
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch
new file mode 100644
index 00000000..a083fb1e
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch
@@ -0,0 +1,141 @@
1From d4903f024ede0e54cc5e025e2cb54309b1164d22 Mon Sep 17 00:00:00 2001
2From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
3Date: Tue, 5 May 2015 15:08:00 +0100
4Subject: [PATCH 1/2] kni: fix vhost build with kernels 3.19 and 4.0
5
6Upstream-Status: Backport [2.1.0]
7
8Due to commit c0371da6 in kernel 3.19, which removed msg_iov
9and msg_iovlen from struct msghdr, DPDK would not build.
10Also, functions memcpy_toiovecend and memcpy_fromiovecend
11were removed in commits ba7438ae and 57dd8a07, being substituted by
12copy_from_iter and copy_to_iter.
13
14This patch makes use of struct iov_iter, which has references
15to msg_iov and msg_iovln, and makes use of copy_from_iter
16and copy_to_iter.
17
18Reported-by: Thomas Monjalon <thomas.monjalon@6wind.com>
19Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
20(cherry picked from commit 45e63ba8db314f75b8c969f3f952dee87f209129)
21Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
22---
23 lib/librte_eal/linuxapp/kni/compat.h | 4 ++++
24 lib/librte_eal/linuxapp/kni/kni_vhost.c | 37 ++++++++++++++++++++++++++-------
25 2 files changed, 33 insertions(+), 8 deletions(-)
26
27diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
28index 1313523..1ad22ba 100644
29--- a/lib/librte_eal/linuxapp/kni/compat.h
30+++ b/lib/librte_eal/linuxapp/kni/compat.h
31@@ -19,3 +19,7 @@
32 #define sk_sleep(s) (s)->sk_sleep
33
34 #endif /* < 2.6.35 */
35+
36+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
37+#define HAVE_IOV_ITER_MSGHDR
38+#endif
39diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
40index 7141f83..83d3351 100644
41--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
42+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
43@@ -76,7 +76,7 @@ static struct proto kni_raw_proto = {
44 };
45
46 static inline int
47-kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
48+kni_vhost_net_tx(struct kni_dev *kni, struct msghdr *m,
49 unsigned offset, unsigned len)
50 {
51 struct rte_kni_mbuf *pkt_kva = NULL;
52@@ -84,7 +84,11 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
53 int ret;
54
55 KNI_DBG_TX("tx offset=%d, len=%d, iovlen=%d\n",
56- offset, len, (int)iov->iov_len);
57+#ifdef HAVE_IOV_ITER_MSGHDR
58+ offset, len, (int)m->msg_iter.iov->iov_len);
59+#else
60+ offset, len, (int)m->msg_iov->iov_len);
61+#endif
62
63 /**
64 * Check if it has at least one free entry in tx_q and
65@@ -108,7 +112,12 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
66 data_kva = pkt_kva->buf_addr + pkt_kva->data_off
67 - kni->mbuf_va + kni->mbuf_kva;
68
69- memcpy_fromiovecend(data_kva, iov, offset, len);
70+#ifdef HAVE_IOV_ITER_MSGHDR
71+ copy_from_iter(data_kva, len, &m->msg_iter);
72+#else
73+ memcpy_fromiovecend(data_kva, m->msg_iov, offset, len);
74+#endif
75+
76 if (unlikely(len < ETH_ZLEN)) {
77 memset(data_kva + len, 0, ETH_ZLEN - len);
78 len = ETH_ZLEN;
79@@ -143,7 +152,7 @@ drop:
80 }
81
82 static inline int
83-kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov,
84+kni_vhost_net_rx(struct kni_dev *kni, struct msghdr *m,
85 unsigned offset, unsigned len)
86 {
87 uint32_t pkt_len;
88@@ -177,10 +186,18 @@ kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov,
89 goto drop;
90
91 KNI_DBG_RX("rx offset=%d, len=%d, pkt_len=%d, iovlen=%d\n",
92- offset, len, pkt_len, (int)iov->iov_len);
93+#ifdef HAVE_IOV_ITER_MSGHDR
94+ offset, len, pkt_len, (int)m->msg_iter.iov->iov_len);
95+#else
96+ offset, len, pkt_len, (int)m->msg_iov->iov_len);
97+#endif
98
99 data_kva = kva->buf_addr + kva->data_off - kni->mbuf_va + kni->mbuf_kva;
100- if (unlikely(memcpy_toiovecend(iov, data_kva, offset, pkt_len)))
101+#ifdef HAVE_IOV_ITER_MSGHDR
102+ if (unlikely(copy_to_iter(data_kva, pkt_len, &m->msg_iter)))
103+#else
104+ if (unlikely(memcpy_toiovecend(m->msg_iov, data_kva, offset, pkt_len)))
105+#endif
106 goto drop;
107
108 /* Update statistics */
109@@ -348,7 +365,11 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
110 return 0;
111
112 KNI_DBG_TX("kni_sndmsg len %ld, flags 0x%08x, nb_iov %d\n",
113+#ifdef HAVE_IOV_ITER_MSGHDR
114+ len, q->flags, (int)m->msg_iter.iov->iov_len);
115+#else
116 len, q->flags, (int)m->msg_iovlen);
117+#endif
118
119 #ifdef RTE_KNI_VHOST_VNET_HDR_EN
120 if (likely(q->flags & IFF_VNET_HDR)) {
121@@ -362,7 +383,7 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
122 if (unlikely(len < ETH_HLEN + q->vnet_hdr_sz))
123 return -EINVAL;
124
125- return kni_vhost_net_tx(q->kni, m->msg_iov, vnet_hdr_len, len);
126+ return kni_vhost_net_tx(q->kni, m, vnet_hdr_len, len);
127 }
128
129 static int
130@@ -391,7 +412,7 @@ kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock,
131 #endif
132
133 if (unlikely(0 == (pkt_len = kni_vhost_net_rx(q->kni,
134- m->msg_iov, vnet_hdr_len, len))))
135+ m, vnet_hdr_len, len))))
136 return 0;
137
138 #ifdef RTE_KNI_VHOST_VNET_HDR_EN
139--
1401.9.1
141
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch
new file mode 100644
index 00000000..2a4dd638
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk/dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch
@@ -0,0 +1,54 @@
1From abb59c037a74d822e402f9d9a3d6c4d06ce7c748 Mon Sep 17 00:00:00 2001
2From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
3Date: Fri, 26 Jun 2015 17:14:36 -0500
4Subject: [PATCH] kni: fix build with kernel 4.1
5
6Upstream-Status: Backport [2.1.1]
7
8rebuild member was removed from headers_ops in kernel release
94.1. Therefore kni module compilation breaks.
10
11This patch add the properly checks to fix it.
12
13Linux: d476059e77d1 ("net: Kill dev_rebuild_header")
14
15Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
16Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
17Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
18---
19 lib/librte_eal/linuxapp/kni/kni_net.c | 4 ++++
20 1 file changed, 4 insertions(+)
21
22diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c
23index dd95db5..c515870 100644
24--- a/lib/librte_eal/linuxapp/kni/kni_net.c
25+++ b/lib/librte_eal/linuxapp/kni/kni_net.c
26@@ -604,6 +604,7 @@ kni_net_header(struct sk_buff *skb, struct net_device *dev,
27 /*
28 * Re-fill the eth header
29 */
30+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
31 static int
32 kni_net_rebuild_header(struct sk_buff *skb)
33 {
34@@ -615,6 +616,7 @@ kni_net_rebuild_header(struct sk_buff *skb)
35
36 return 0;
37 }
38+#endif /* < 4.1.0 */
39
40 /**
41 * kni_net_set_mac - Change the Ethernet Address of the KNI NIC
42@@ -634,7 +636,9 @@ static int kni_net_set_mac(struct net_device *netdev, void *p)
43
44 static const struct header_ops kni_net_header_ops = {
45 .create = kni_net_header,
46+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
47 .rebuild = kni_net_rebuild_header,
48+#endif /* < 4.1.0 */
49 .cache = NULL, /* disable caching */
50 };
51
52--
531.7.9.5
54
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb b/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb
index 33ebaac4..e45d6b8a 100644
--- a/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk_2.0.0.bb
@@ -2,6 +2,12 @@ include dpdk.inc
2 2
3SRC_URI += "file://dpdk-2.0.0-dpdk-enable-ip_fragmentation-in-common_linuxapp.patch \ 3SRC_URI += "file://dpdk-2.0.0-dpdk-enable-ip_fragmentation-in-common_linuxapp.patch \
4 file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch \ 4 file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch \
5 file://dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch \
6 file://dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch \
7 file://dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch \
8 file://dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch \
9 file://dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch \
10 file://dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch \
5 " 11 "
6 12
7SRC_URI[dpdk.md5sum] = "e9e7935c9eec920841ad373949514934" 13SRC_URI[dpdk.md5sum] = "e9e7935c9eec920841ad373949514934"