From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: [PATCH] kni: fix vhost-kni compile errors Date: Mon, 11 Apr 2016 17:54:28 +0100 Message-ID: <1460393668-17719-1-git-send-email-ferruh.yigit@intel.com> References: Cc: Helin Zhang , Ferruh Yigit To: dev@dpdk.org Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 7BB7C2949 for ; Mon, 11 Apr 2016 18:54:33 +0200 (CEST) In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" fix vhost-kni compile errors because of Linux kernel API changes - SOCK_ASYNC_WAITDATA renamed to SOCKWQ_ASYNC_WAITDATA Linux commit id: 9cd3e072 Updated in Linux kernel 4.4 - sk_alloc() gets new parameter Linux commit id: 11aa9c28b Updated in Linux kernel 4.2 New parameter is: "@kern: is this to be a kernel socket?" Reported-by: chintu hetam Signed-off-by: Ferruh Yigit --- Patch not tested, just fixed compiler errors. --- lib/librte_eal/linuxapp/kni/kni_vhost.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c index 6f2a961..482b384 100644 --- a/lib/librte_eal/linuxapp/kni/kni_vhost.c +++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c @@ -251,7 +251,11 @@ kni_sock_poll(struct file *file, struct socket *sock, poll_table * wait) mask |= POLLIN | POLLRDNORM; if (sock_writeable(&q->sk) || +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0) + (!test_and_set_bit(SOCKWQ_ASYNC_NOSPACE, &q->sock->flags) && +#else (!test_and_set_bit(SOCK_ASYNC_NOSPACE, &q->sock->flags) && +#endif sock_writeable(&q->sk))) mask |= POLLOUT | POLLWRNORM; @@ -619,8 +623,11 @@ kni_sk_write_space(struct sock *sk) wait_queue_head_t *wqueue; if (!sock_writeable(sk) || - !test_and_clear_bit(SOCK_ASYNC_NOSPACE, - &sk->sk_socket->flags)) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0) + !test_and_clear_bit(SOCKWQ_ASYNC_NOSPACE, &sk->sk_socket->flags)) +#else + !test_and_clear_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags)) +#endif return; wqueue = sk_sleep(sk); if (wqueue && waitqueue_active(wqueue)) @@ -666,8 +673,14 @@ kni_vhost_backend_init(struct kni_dev *kni) if (kni->vhost_queue != NULL) return -1; - if (!(q = (struct kni_vhost_queue *)sk_alloc( - net, AF_UNSPEC, GFP_KERNEL, &kni_raw_proto))) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) + q = (struct kni_vhost_queue *)sk_alloc(net, AF_UNSPEC, GFP_KERNEL, + &kni_raw_proto, 0); +#else + q = (struct kni_vhost_queue *)sk_alloc(net, AF_UNSPEC, GFP_KERNEL, + &kni_raw_proto); +#endif + if (!q) return -ENOMEM; err = sock_create_lite(AF_UNSPEC, SOCK_RAW, IPPROTO_RAW, &q->sock); -- 2.5.5