91 lines
3.1 KiB
Diff
91 lines
3.1 KiB
Diff
From 349e2ee77e114850a23c670fa7d6e380af509cc3 Mon Sep 17 00:00:00 2001
|
|
From: Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>
|
|
Date: Thu, 28 Sep 2023 09:25:53 +0000
|
|
Subject: [PATCH] net/af_xdp: fix missing UMEM feature
|
|
|
|
[ upstream commit 349e2ee77e114850a23c670fa7d6e380af509cc3 ]
|
|
|
|
Shared UMEM feature is missing in the af_xdp driver build
|
|
after the commit 33d66940e9ba ("build: use C11 standard").
|
|
|
|
Runtime Error log while using Shared UMEM feature:
|
|
rte_pmd_af_xdp_probe(): Initializing pmd_af_xdp for net_af_xdp0
|
|
init_internals(): Shared UMEM feature not available. Check kernel
|
|
and libbpf version
|
|
rte_pmd_af_xdp_probe(): Failed to init internals
|
|
vdev_probe(): failed to initialize net_af_xdp0 device
|
|
EAL: Bus (vdev) probe failed.
|
|
|
|
Reason for the missing UMEM feature is because the C11 standard
|
|
doesn't include the GNU compiler extensions typeof and asm, used
|
|
by the libbpf and libxdp header files.
|
|
|
|
Meson error log:
|
|
In file included from
|
|
dpdk/build/meson-private/tmpf74nkhqd/testfile.c:5:
|
|
/usr/local/include/bpf/xsk.h: In function 'xsk_prod_nb_free':
|
|
/usr/local/include/bpf/xsk.h:165:26: error: expected ';' before '___p1'
|
|
165 | r->cached_cons = libbpf_smp_load_acquire(r->consumer);
|
|
| ^~~~~~~~~~~~~~~~~~~~~~~
|
|
/usr/local/include/bpf/xsk.h:165:26: error: 'asm' undeclared (first use
|
|
in this function)
|
|
...
|
|
/usr/local/include/bpf/xsk.h:199:9: error: unknown type name 'typeof'
|
|
199 | libbpf_smp_store_release(prod->producer, *prod->producer
|
|
+ nb);
|
|
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Fix is to provide alternative keywords by C macros.
|
|
|
|
Fixes: 33d66940e9ba ("build: use C11 standard")
|
|
|
|
Signed-off-by: Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>
|
|
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|
|
---
|
|
drivers/net/af_xdp/meson.build | 14 +++++++++++---
|
|
1 file changed, 11 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
|
|
index 9a8dbb4d49..9f33e57fa2 100644
|
|
--- a/drivers/net/af_xdp/meson.build
|
|
+++ b/drivers/net/af_xdp/meson.build
|
|
@@ -48,6 +48,14 @@ endif
|
|
|
|
if build
|
|
xsk_check_prefix = '''
|
|
+#ifndef typeof
|
|
+#define typeof __typeof__
|
|
+#endif
|
|
+
|
|
+#ifndef asm
|
|
+#define asm __asm__
|
|
+#endif
|
|
+
|
|
#ifdef RTE_NET_AF_XDP_LIBXDP
|
|
#include <xdp/xsk.h>
|
|
#else
|
|
@@ -56,17 +64,17 @@ if build
|
|
'''
|
|
|
|
if cc.has_function('xsk_socket__create_shared', prefix : xsk_check_prefix,
|
|
- dependencies : ext_deps)
|
|
+ dependencies : ext_deps, args: cflags)
|
|
cflags += ['-DRTE_NET_AF_XDP_SHARED_UMEM']
|
|
endif
|
|
if cc.has_function('bpf_object__next_program',
|
|
prefix : '#include <bpf/libbpf.h>',
|
|
- dependencies : bpf_dep)
|
|
+ dependencies : bpf_dep, args: cflags)
|
|
cflags += ['-DRTE_NET_AF_XDP_LIBBPF_OBJ_OPEN']
|
|
endif
|
|
if cc.has_function('bpf_xdp_attach',
|
|
prefix : '#include <bpf/libbpf.h>',
|
|
- dependencies : bpf_dep)
|
|
+ dependencies : bpf_dep, args: cflags)
|
|
cflags += ['-DRTE_NET_AF_XDP_LIBBPF_XDP_ATTACH']
|
|
endif
|
|
endif
|
|
--
|
|
2.33.0
|
|
|