> -----Original Message----- > From: De Lara Guarch, Pablo > Sent: Monday, November 16, 2015 11:28 PM > To: Zhang, Helin; dev at dpdk.org > Subject: RE: [PATCH] kni: fix compilation issue with KNI_VHOST enabled > > > > > -----Original Message----- > > From: Zhang, Helin > > Sent: Monday, November 16, 2015 3:19 PM > > To: De Lara Guarch, Pablo; dev at dpdk.org > > Subject: RE: [PATCH] kni: fix compilation issue with KNI_VHOST enabled > > > > > > > > -----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? > > Yes, that's for kernel socket. Should we put a 1? In most parts of the kernel, > "kern" is passed, but we don't have such variable. In others, they pass 0. Sorry for the delay! Yes, I think it shouldn't use 0, as it is triggered and used in kernel space. /Helin
> > Thanks, > Pablo > > > > /Helin