mirror of
git://git.yoctoproject.org/meta-intel
synced 2026-01-01 13:58:05 +00:00
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>
This commit is contained in:
parent
6e91701dcf
commit
723b2078ae
|
|
@ -0,0 +1,49 @@
|
|||
From a635f49a5873a104c8867bd1f6375d7a5064be5e Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anujx.mittal@intel.com>
|
||||
Date: Thu, 8 Oct 2015 22:46:13 +0800
|
||||
Subject: [PATCH] ixgbe: fix a build warning being treated as error
|
||||
|
||||
Upstream-Status: Inappropriate [other]
|
||||
|
||||
The change is part of a feature commit upstream (e0ba4e77605ab500518247cb6fab98dd3d87ba97)
|
||||
that we don't want to backport.
|
||||
|
||||
Initialize the data byte to avoid warnings like:
|
||||
|
||||
lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c: In function 'ixgbe_read_i2c_combined_generic':
|
||||
lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'low_bits' may be used
|
||||
uninitialized in this function [-Werror=maybe-uninitialized]
|
||||
*data |= bit << i;
|
||||
^
|
||||
dpdk/2.0.0-r0/dpdk-2.0.0/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:120:5: note:
|
||||
'low_bits' was declared here
|
||||
u8 low_bits;
|
||||
^
|
||||
lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:2101:9: error: 'high_bits' may be used
|
||||
uninitialized in this function [-Werror=maybe-uninitialized]
|
||||
*data |= bit << i;
|
||||
^
|
||||
lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c:119:5: note: 'high_bits' was declared here
|
||||
u8 high_bits;
|
||||
|
||||
Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
|
||||
---
|
||||
lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
|
||||
index 2305448..ec34753 100644
|
||||
--- a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
|
||||
+++ b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c
|
||||
@@ -2095,7 +2095,7 @@ STATIC s32 ixgbe_clock_in_i2c_byte(struct ixgbe_hw *hw, u8 *data)
|
||||
bool bit = 0;
|
||||
|
||||
DEBUGFUNC("ixgbe_clock_in_i2c_byte");
|
||||
-
|
||||
+ *data = 0;
|
||||
for (i = 7; i >= 0; i--) {
|
||||
ixgbe_clock_in_i2c_bit(hw, &bit);
|
||||
*data |= bit << i;
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
From 54117da1c945c046c6e3959db81511c78f876426 Mon Sep 17 00:00:00 2001
|
||||
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
Date: Tue, 28 Apr 2015 18:37:42 +0100
|
||||
Subject: [PATCH] kni: fix build with kernel 4.0
|
||||
|
||||
Upstream-Status: Backport [2.1.0]
|
||||
|
||||
Due to API changes in function pointer ndo_bridge_setlink
|
||||
(commit ad41faa8) and the rename of functions vlan_tx_*
|
||||
(commit df8a39de) in kernel 4.0, DPDK would not build.
|
||||
|
||||
This patch adds the properly checks to fix the compilation.
|
||||
|
||||
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
|
||||
---
|
||||
lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 6 ++++++
|
||||
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 6 ++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
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 24b147d..bc3c6a3 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
|
||||
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
|
||||
@@ -2198,8 +2198,14 @@ static int igb_ndo_fdb_dump(struct sk_buff *skb,
|
||||
#endif /* USE_DEFAULT_FDB_DEL_DUMP */
|
||||
|
||||
#ifdef HAVE_BRIDGE_ATTRIBS
|
||||
+#ifdef HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
|
||||
+static int igb_ndo_bridge_setlink(struct net_device *dev,
|
||||
+ struct nlmsghdr *nlh,
|
||||
+ u16 flags)
|
||||
+#else
|
||||
static int igb_ndo_bridge_setlink(struct net_device *dev,
|
||||
struct nlmsghdr *nlh)
|
||||
+#endif /* HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS */
|
||||
{
|
||||
struct igb_adapter *adapter = netdev_priv(dev);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
index 2e7e714..54d1f86 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
@@ -3885,4 +3885,10 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
|
||||
#define HAVE_NDO_FDB_ADD_VID
|
||||
#endif /* >= 3.19.0 */
|
||||
|
||||
+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) )
|
||||
+/* vlan_tx_xx functions got renamed to skb_vlan */
|
||||
+#define vlan_tx_tag_get skb_vlan_tag_get
|
||||
+#define vlan_tx_tag_present skb_vlan_tag_present
|
||||
+#define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
|
||||
+#endif /* 4.0.0 */
|
||||
#endif /* _KCOMPAT_H_ */
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
From 97ebf687c7a635ac6f1b1e22293ed7405668c66e Mon Sep 17 00:00:00 2001
|
||||
From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Date: Fri, 26 Jun 2015 17:14:35 -0500
|
||||
Subject: [PATCH] kni: fix igb build with kernel 4.1
|
||||
|
||||
Upstream-Status: Backport [2.1.0]
|
||||
|
||||
ndo_bridge_getlink has changed in kernel release 4.1. It
|
||||
adds new parameter which breaks compilation.
|
||||
|
||||
This patch add the properly checks to fix it.
|
||||
|
||||
Linux: 46c264daaaa5 ("bridge/nl: remove wrong use of NLM_F_MULTI")
|
||||
|
||||
Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
|
||||
---
|
||||
lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 10 ++++++++++
|
||||
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 5 +++++
|
||||
2 files changed, 15 insertions(+)
|
||||
|
||||
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 bc3c6a3..b99b365 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
|
||||
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c
|
||||
@@ -2250,8 +2250,14 @@ static int igb_ndo_bridge_setlink(struct net_device *dev,
|
||||
}
|
||||
|
||||
#ifdef HAVE_BRIDGE_FILTER
|
||||
+#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
|
||||
+static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
+ struct net_device *dev, u32 filter_mask,
|
||||
+ int nlflags)
|
||||
+#else
|
||||
static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
struct net_device *dev, u32 filter_mask)
|
||||
+#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */
|
||||
#else
|
||||
static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
struct net_device *dev)
|
||||
@@ -2269,7 +2275,11 @@ static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
mode = BRIDGE_MODE_VEPA;
|
||||
|
||||
#ifdef HAVE_NDO_FDB_ADD_VID
|
||||
+#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
|
||||
+ return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0, nlflags);
|
||||
+#else
|
||||
return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0);
|
||||
+#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */
|
||||
#else
|
||||
return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode);
|
||||
#endif /* HAVE_NDO_FDB_ADD_VID */
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
index 54d1f86..2673281 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
|
||||
@@ -3891,4 +3891,9 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
|
||||
#define vlan_tx_tag_present skb_vlan_tag_present
|
||||
#define HAVE_NDO_BRIDGE_SET_DEL_LINK_FLAGS
|
||||
#endif /* 4.0.0 */
|
||||
+
|
||||
+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0) )
|
||||
+/* ndo_bridge_getlink adds new nlflags parameter */
|
||||
+#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK
|
||||
+#endif /* >= 4.1.0 */
|
||||
#endif /* _KCOMPAT_H_ */
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
From 289840d86ddaec3310ee1d6a85fe6f20384de615 Mon Sep 17 00:00:00 2001
|
||||
From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Date: Fri, 26 Jun 2015 17:14:37 -0500
|
||||
Subject: [PATCH 2/2] kni: fix vhost build with kernel 4.1
|
||||
|
||||
Upstream-Status: Backport [2.1.0]
|
||||
|
||||
Parameters from sendmsg and recvmsg has been changed in 4.1 kernel.
|
||||
The function pointers belong to proto_ops structure were updated removing
|
||||
the struct kiocb parameter.
|
||||
|
||||
Linux: 1b784140474e ("net: Remove iocb argument from sendmsg and recvmsg")
|
||||
|
||||
Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
(cherry picked from commit 8d8fb8aa5836e719d5fb896693b16afabd5118b9)
|
||||
Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
|
||||
---
|
||||
lib/librte_eal/linuxapp/kni/compat.h | 4 ++++
|
||||
lib/librte_eal/linuxapp/kni/kni_vhost.c | 10 ++++++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
|
||||
index 1ad22ba..cf100b6 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/compat.h
|
||||
+++ b/lib/librte_eal/linuxapp/kni/compat.h
|
||||
@@ -23,3 +23,7 @@
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
|
||||
#define HAVE_IOV_ITER_MSGHDR
|
||||
#endif
|
||||
+
|
||||
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) )
|
||||
+#define HAVE_KIOCB_MSG_PARAM
|
||||
+#endif /* < 4.1.0 */
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
index 83d3351..4611ff4 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
@@ -353,8 +353,13 @@ except:
|
||||
}
|
||||
|
||||
static int
|
||||
+#ifdef HAVE_KIOCB_MSG_PARAM
|
||||
kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
|
||||
struct msghdr *m, size_t total_len)
|
||||
+#else
|
||||
+kni_sock_sndmsg(struct socket *sock,
|
||||
+ struct msghdr *m, size_t total_len)
|
||||
+#endif /* HAVE_KIOCB_MSG_PARAM */
|
||||
{
|
||||
struct kni_vhost_queue *q =
|
||||
container_of(sock->sk, struct kni_vhost_queue, sk);
|
||||
@@ -387,8 +392,13 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
|
||||
}
|
||||
|
||||
static int
|
||||
+#ifdef HAVE_KIOCB_MSG_PARAM
|
||||
kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
struct msghdr *m, size_t len, int flags)
|
||||
+#else
|
||||
+kni_sock_rcvmsg(struct socket *sock,
|
||||
+ struct msghdr *m, size_t len, int flags)
|
||||
+#endif /* HAVE_KIOCB_MSG_PARAM */
|
||||
{
|
||||
int vnet_hdr_len = 0;
|
||||
int pkt_len = 0;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
From d4903f024ede0e54cc5e025e2cb54309b1164d22 Mon Sep 17 00:00:00 2001
|
||||
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
Date: Tue, 5 May 2015 15:08:00 +0100
|
||||
Subject: [PATCH 1/2] kni: fix vhost build with kernels 3.19 and 4.0
|
||||
|
||||
Upstream-Status: Backport [2.1.0]
|
||||
|
||||
Due to commit c0371da6 in kernel 3.19, which removed msg_iov
|
||||
and msg_iovlen from struct msghdr, DPDK would not build.
|
||||
Also, functions memcpy_toiovecend and memcpy_fromiovecend
|
||||
were removed in commits ba7438ae and 57dd8a07, being substituted by
|
||||
copy_from_iter and copy_to_iter.
|
||||
|
||||
This patch makes use of struct iov_iter, which has references
|
||||
to msg_iov and msg_iovln, and makes use of copy_from_iter
|
||||
and copy_to_iter.
|
||||
|
||||
Reported-by: Thomas Monjalon <thomas.monjalon@6wind.com>
|
||||
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
(cherry picked from commit 45e63ba8db314f75b8c969f3f952dee87f209129)
|
||||
Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com>
|
||||
---
|
||||
lib/librte_eal/linuxapp/kni/compat.h | 4 ++++
|
||||
lib/librte_eal/linuxapp/kni/kni_vhost.c | 37 ++++++++++++++++++++++++++-------
|
||||
2 files changed, 33 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
|
||||
index 1313523..1ad22ba 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/compat.h
|
||||
+++ b/lib/librte_eal/linuxapp/kni/compat.h
|
||||
@@ -19,3 +19,7 @@
|
||||
#define sk_sleep(s) (s)->sk_sleep
|
||||
|
||||
#endif /* < 2.6.35 */
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
|
||||
+#define HAVE_IOV_ITER_MSGHDR
|
||||
+#endif
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
index 7141f83..83d3351 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
|
||||
@@ -76,7 +76,7 @@ static struct proto kni_raw_proto = {
|
||||
};
|
||||
|
||||
static inline int
|
||||
-kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
|
||||
+kni_vhost_net_tx(struct kni_dev *kni, struct msghdr *m,
|
||||
unsigned offset, unsigned len)
|
||||
{
|
||||
struct rte_kni_mbuf *pkt_kva = NULL;
|
||||
@@ -84,7 +84,11 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
|
||||
int ret;
|
||||
|
||||
KNI_DBG_TX("tx offset=%d, len=%d, iovlen=%d\n",
|
||||
- offset, len, (int)iov->iov_len);
|
||||
+#ifdef HAVE_IOV_ITER_MSGHDR
|
||||
+ offset, len, (int)m->msg_iter.iov->iov_len);
|
||||
+#else
|
||||
+ offset, len, (int)m->msg_iov->iov_len);
|
||||
+#endif
|
||||
|
||||
/**
|
||||
* Check if it has at least one free entry in tx_q and
|
||||
@@ -108,7 +112,12 @@ kni_vhost_net_tx(struct kni_dev *kni, struct iovec *iov,
|
||||
data_kva = pkt_kva->buf_addr + pkt_kva->data_off
|
||||
- kni->mbuf_va + kni->mbuf_kva;
|
||||
|
||||
- memcpy_fromiovecend(data_kva, iov, offset, len);
|
||||
+#ifdef HAVE_IOV_ITER_MSGHDR
|
||||
+ copy_from_iter(data_kva, len, &m->msg_iter);
|
||||
+#else
|
||||
+ memcpy_fromiovecend(data_kva, m->msg_iov, offset, len);
|
||||
+#endif
|
||||
+
|
||||
if (unlikely(len < ETH_ZLEN)) {
|
||||
memset(data_kva + len, 0, ETH_ZLEN - len);
|
||||
len = ETH_ZLEN;
|
||||
@@ -143,7 +152,7 @@ drop:
|
||||
}
|
||||
|
||||
static inline int
|
||||
-kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov,
|
||||
+kni_vhost_net_rx(struct kni_dev *kni, struct msghdr *m,
|
||||
unsigned offset, unsigned len)
|
||||
{
|
||||
uint32_t pkt_len;
|
||||
@@ -177,10 +186,18 @@ kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov,
|
||||
goto drop;
|
||||
|
||||
KNI_DBG_RX("rx offset=%d, len=%d, pkt_len=%d, iovlen=%d\n",
|
||||
- offset, len, pkt_len, (int)iov->iov_len);
|
||||
+#ifdef HAVE_IOV_ITER_MSGHDR
|
||||
+ offset, len, pkt_len, (int)m->msg_iter.iov->iov_len);
|
||||
+#else
|
||||
+ offset, len, pkt_len, (int)m->msg_iov->iov_len);
|
||||
+#endif
|
||||
|
||||
data_kva = kva->buf_addr + kva->data_off - kni->mbuf_va + kni->mbuf_kva;
|
||||
- if (unlikely(memcpy_toiovecend(iov, data_kva, offset, pkt_len)))
|
||||
+#ifdef HAVE_IOV_ITER_MSGHDR
|
||||
+ if (unlikely(copy_to_iter(data_kva, pkt_len, &m->msg_iter)))
|
||||
+#else
|
||||
+ if (unlikely(memcpy_toiovecend(m->msg_iov, data_kva, offset, pkt_len)))
|
||||
+#endif
|
||||
goto drop;
|
||||
|
||||
/* Update statistics */
|
||||
@@ -348,7 +365,11 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
|
||||
return 0;
|
||||
|
||||
KNI_DBG_TX("kni_sndmsg len %ld, flags 0x%08x, nb_iov %d\n",
|
||||
+#ifdef HAVE_IOV_ITER_MSGHDR
|
||||
+ len, q->flags, (int)m->msg_iter.iov->iov_len);
|
||||
+#else
|
||||
len, q->flags, (int)m->msg_iovlen);
|
||||
+#endif
|
||||
|
||||
#ifdef RTE_KNI_VHOST_VNET_HDR_EN
|
||||
if (likely(q->flags & IFF_VNET_HDR)) {
|
||||
@@ -362,7 +383,7 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (unlikely(len < ETH_HLEN + q->vnet_hdr_sz))
|
||||
return -EINVAL;
|
||||
|
||||
- return kni_vhost_net_tx(q->kni, m->msg_iov, vnet_hdr_len, len);
|
||||
+ return kni_vhost_net_tx(q->kni, m, vnet_hdr_len, len);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -391,7 +412,7 @@ kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
#endif
|
||||
|
||||
if (unlikely(0 == (pkt_len = kni_vhost_net_rx(q->kni,
|
||||
- m->msg_iov, vnet_hdr_len, len))))
|
||||
+ m, vnet_hdr_len, len))))
|
||||
return 0;
|
||||
|
||||
#ifdef RTE_KNI_VHOST_VNET_HDR_EN
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
From abb59c037a74d822e402f9d9a3d6c4d06ce7c748 Mon Sep 17 00:00:00 2001
|
||||
From: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Date: Fri, 26 Jun 2015 17:14:36 -0500
|
||||
Subject: [PATCH] kni: fix build with kernel 4.1
|
||||
|
||||
Upstream-Status: Backport [2.1.1]
|
||||
|
||||
rebuild member was removed from headers_ops in kernel release
|
||||
4.1. Therefore kni module compilation breaks.
|
||||
|
||||
This patch add the properly checks to fix it.
|
||||
|
||||
Linux: d476059e77d1 ("net: Kill dev_rebuild_header")
|
||||
|
||||
Signed-off-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
|
||||
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
|
||||
Signed-off-by: Anuj Mittal <anujx.mittal@intel.com>
|
||||
---
|
||||
lib/librte_eal/linuxapp/kni/kni_net.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c
|
||||
index dd95db5..c515870 100644
|
||||
--- a/lib/librte_eal/linuxapp/kni/kni_net.c
|
||||
+++ b/lib/librte_eal/linuxapp/kni/kni_net.c
|
||||
@@ -604,6 +604,7 @@ kni_net_header(struct sk_buff *skb, struct net_device *dev,
|
||||
/*
|
||||
* Re-fill the eth header
|
||||
*/
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
|
||||
static int
|
||||
kni_net_rebuild_header(struct sk_buff *skb)
|
||||
{
|
||||
@@ -615,6 +616,7 @@ kni_net_rebuild_header(struct sk_buff *skb)
|
||||
|
||||
return 0;
|
||||
}
|
||||
+#endif /* < 4.1.0 */
|
||||
|
||||
/**
|
||||
* kni_net_set_mac - Change the Ethernet Address of the KNI NIC
|
||||
@@ -634,7 +636,9 @@ static int kni_net_set_mac(struct net_device *netdev, void *p)
|
||||
|
||||
static const struct header_ops kni_net_header_ops = {
|
||||
.create = kni_net_header,
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
|
||||
.rebuild = kni_net_rebuild_header,
|
||||
+#endif /* < 4.1.0 */
|
||||
.cache = NULL, /* disable caching */
|
||||
};
|
||||
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
|
|
@ -2,6 +2,12 @@ include dpdk.inc
|
|||
|
||||
SRC_URI += "file://dpdk-2.0.0-dpdk-enable-ip_fragmentation-in-common_linuxapp.patch \
|
||||
file://dpdk-1.8.0-and-2.0.0-examples-add-config-variable-to-enable-disable-dpdk.patch \
|
||||
file://dpdk-1.8.0-and-2.0.0-ixgbe-fix-a-build-warning-being-treated-as-error.patch \
|
||||
file://dpdk-2.0.0-kni-fix-build-with-kernel-4.0.patch \
|
||||
file://dpdk-2.0.0-kni-fix-igb-build-with-kernel-4.1.patch \
|
||||
file://dpdk-2.0.0-kni-net-fix-build-with-kernel-4.1.patch \
|
||||
file://dpdk-2.0.0-kni-fix-vhost-build-with-kernels-3.19-and-4.0.patch \
|
||||
file://dpdk-2.0.0-kni-fix-vhost-build-with-kernel-4.1.patch \
|
||||
"
|
||||
|
||||
SRC_URI[dpdk.md5sum] = "e9e7935c9eec920841ad373949514934"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user