From: Pablo de Lara <pablo.de.lara.guarch@intel.com> To: dev@dpdk.org Subject: [dpdk-dev] [PATCH] kni: fix compilation issue on kernel 3.19 Date: Mon, 4 May 2015 22:46:03 +0100 Message-ID: <1430775963-29444-1-git-send-email-pablo.de.lara.guarch@intel.com> (raw) Due to commit c0371da6 in kernel 3.19, which removed msg_iov and msg_iovlen from struct msghdr, DPDK would not build. This patch makes use of struct iov_iter, which has references to those two variables. Reported-by: Thomas Monjalon <thomas.monjalon@6wind.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> --- lib/librte_eal/linuxapp/kni/compat.h | 4 ++++ lib/librte_eal/linuxapp/kni/kni_vhost.c | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 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..a2fd97f 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, const struct iovec *iov, unsigned offset, unsigned len) { struct rte_kni_mbuf *pkt_kva = NULL; @@ -143,7 +143,7 @@ drop: } static inline int -kni_vhost_net_rx(struct kni_dev *kni, struct iovec *iov, +kni_vhost_net_rx(struct kni_dev *kni, const struct iovec *iov, unsigned offset, unsigned len) { uint32_t pkt_len; @@ -361,8 +361,11 @@ kni_sock_sndmsg(struct kiocb *iocb, struct socket *sock, if (unlikely(len < ETH_HLEN + q->vnet_hdr_sz)) return -EINVAL; - +#ifdef HAVE_IOV_ITER_MSGHDR + return kni_vhost_net_tx(q->kni, m->msg_iter.iov, vnet_hdr_len, len); +#else return kni_vhost_net_tx(q->kni, m->msg_iov, vnet_hdr_len, len); +#endif } static int @@ -391,7 +394,11 @@ kni_sock_rcvmsg(struct kiocb *iocb, struct socket *sock, #endif if (unlikely(0 == (pkt_len = kni_vhost_net_rx(q->kni, +#ifdef HAVE_IOV_ITER_MSGHDR + m->msg_iter.iov, vnet_hdr_len, len)))) +#else m->msg_iov, vnet_hdr_len, len)))) +#endif return 0; #ifdef RTE_KNI_VHOST_VNET_HDR_EN -- 1.7.4.1
next reply other threads:[~2015-05-04 21:46 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-04 21:46 Pablo de Lara [this message] 2015-05-05 11:28 ` De Lara Guarch, Pablo [not found] ` <1430829319-22242-1-git-send-email-pablo.de.lara.guarch@intel.com> 2015-05-05 14:07 ` [dpdk-dev] [PATCH v2] kni: fix compilation issue in KNI vhost on kernel 3.19/4.0 De Lara Guarch, Pablo 2015-05-05 14:08 ` [dpdk-dev] [PATCH v3] " Pablo de Lara 2015-05-10 21:25 ` Thomas Monjalon 2015-05-10 23:01 ` De Lara Guarch, Pablo 2015-05-11 8:27 ` Thomas Monjalon 2015-05-11 9:06 ` Thomas Monjalon -- strict thread matches above, loose matches on Subject: below -- 2015-03-12 17:24 [dpdk-dev] [PATCH] kni: fix compilation issue on kernel 3.19 Pablo de Lara 2015-03-20 21:23 ` Thomas Monjalon 2015-03-22 18:03 ` De Lara Guarch, Pablo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1430775963-29444-1-git-send-email-pablo.de.lara.guarch@intel.com \ --to=pablo.de.lara.guarch@intel.com \ --cc=dev@dpdk.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git