-----Original Message----- From: De Lara Guarch, Pablo Sent: Monday, November 16, 2015 10:08 PM To: dev at dpdk.org Cc: Zhang, Helin <helin.zhang at intel.com>; De Lara Guarch, Pablo <pablo.de.lara.guarch at intel.com> Subject: [PATCH] kni: fix compilation issue with KNI_VHOST enabled
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 ?kni_vhost_backend_init?: lib/librte_eal/linuxapp/kni/kni_vhost.c:669:38: error: too few arguments to function ?sk_alloc? if (!(q = (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 <pablo.de.lara.guarch at intel.com> --- 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/linuxapp/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 != NULL) return -1; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) + if (!(q = (struct kni_vhost_queue *)sk_alloc( + net, AF_UNSPEC, GFP_KERNEL, &kni_raw_proto, 0))) Is this a kernel socket or else? /Helin + return -ENOMEM; +#else if (!(q = (struct kni_vhost_queue *)sk_alloc( net, AF_UNSPEC, GFP_KERNEL, &kni_raw_proto))) return -ENOMEM; +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) */ err = sock_create_lite(AF_UNSPEC, SOCK_RAW, IPPROTO_RAW, &q->sock); if (err) -- 2.5.0