[dpdk-dev] [PATCH] kni: fix compilation issue with KNI_VHOST enabled
Zhang, Helin
helin.zhang at intel.com
Wed Nov 18 08:42:37 CET 2015
> -----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
More information about the dev
mailing list