From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pablo de Lara Subject: [PATCH] kni: fix compilation issue with KNI_VHOST enabled Date: Mon, 16 Nov 2015 14:07:30 +0000 Message-ID: <1447682850-152756-1-git-send-email-pablo.de.lara.guarch@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 95AEE2E81 for ; Mon, 16 Nov 2015 15:08:00 +0100 (CET) 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 for the following error, on kernels 4.2.0 or higher, when KNI_VHOST is enabled: CC [M] lib/librte_eal/linuxapp/kni/kni_vhost.o lib/librte_eal/linuxapp/kni/kni_vhost.c: In function =E2=80=98k= ni_vhost_backend_init=E2=80=99: lib/librte_eal/linuxapp/kni/kni_vhost.c:669:38: error: too few = arguments to function =E2=80=98sk_alloc=E2=80=99 if (!(q =3D (struct kni_vhost_queue *)sk_alloc( ^ In file included from lib/librte_eal/linuxapp/kni/kni_vhost.c:27:0: /usr/src/kernels/4.2.3-300.fc23.x86_64/include/net/sock.h:1515:14: note: = declared here struct sock *sk_alloc(struct net *net, int family, gfp_t priority, ^ This change in the kernel was added in the following commit: Linux: 11aa9c28 ("net: Pass kern from net_proto_family.create to sk_alloc= ") Signed-off-by: Pablo de Lara --- lib/librte_eal/linuxapp/kni/kni_vhost.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/librte_eal/linuxapp/kni/kni_vhost.c b/lib/librte_eal/lin= uxapp/kni/kni_vhost.c index d0c12a6..2346ff3 100644 --- a/lib/librte_eal/linuxapp/kni/kni_vhost.c +++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c @@ -666,9 +666,15 @@ kni_vhost_backend_init(struct kni_dev *kni) if (kni->vhost_queue !=3D NULL) return -1; =20 +#if LINUX_VERSION_CODE >=3D KERNEL_VERSION(4,2,0) + if (!(q =3D (struct kni_vhost_queue *)sk_alloc( + net, AF_UNSPEC, GFP_KERNEL, &kni_raw_proto, 0))) + return -ENOMEM; +#else if (!(q =3D (struct kni_vhost_queue *)sk_alloc( net, AF_UNSPEC, GFP_KERNEL, &kni_raw_proto))) return -ENOMEM; +#endif /* LINUX_VERSION_CODE >=3D KERNEL_VERSION(4,2,0) */ =20 err =3D sock_create_lite(AF_UNSPEC, SOCK_RAW, IPPROTO_RAW, &q->sock); if (err) --=20 2.5.0