Current numa.h header for sparse re-defines functions in a way
that breaks the header from libnuma 2.0.13+, because the original
issue was fixed in that version:
https://github.com/numactl/numactl/commit/25dcde021dd4f1a1dcac2ba0094f1cb441a2e4a5
Sparse errors as a result:
lib/netdev-afxdp.c: note: in included file (through include/sparse/numa.h):
/usr/include/numa.h:346:26: error: macro "numa_get_interleave_mask_compat"
passed 1 arguments, but takes just 0
/usr/include/numa.h:376:26: error: macro "numa_get_membind_compat"
passed 1 arguments, but takes just 0
/usr/include/numa.h:406:26: error: macro "numa_get_run_node_mask_compat"
passed 1 arguments, but takes just 0
/usr/include/numa.h:347:1: error: Expected ; at end of declaration
/usr/include/numa.h:347:1: error: got {
/usr/include/numa.h:351:9: error: 'tp' has implicit type
It's hard to adjust defines to work with both versions of a header.
Just defining all the functions we actually use in OVS instead and
not including the original header.
Fixes: e8568993e062 ("netdev-afxdp: NUMA-aware memory allocation for XSK
related memory.")
Signed-off-by: Ilya Maximets <[email protected]>
---
include/sparse/numa.h | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/include/sparse/numa.h b/include/sparse/numa.h
index 3691a0eaf..a185972e3 100644
--- a/include/sparse/numa.h
+++ b/include/sparse/numa.h
@@ -18,10 +18,21 @@
#error "Use this header only with sparse. It is not a correct implementation."
#endif
-/* Avoid sparse warning: non-ANSI function declaration of function" */
-#define numa_get_membind_compat() numa_get_membind_compat(void)
-#define numa_get_interleave_mask_compat() numa_get_interleave_mask_compat(void)
-#define numa_get_run_node_mask_compat() numa_get_run_node_mask_compat(void)
+#ifndef __NUMA_H_SPARSE
+#define __NUMA_H_SPARSE 1
-/* Get actual <numa.h> definitions for us to annotate and build on. */
-#include_next<numa.h>
+/* Avoid sparse warning "non-ANSI function declaration of function" with
+ * libnuma < 2.0.13. */
+
+struct bitmask {
+ unsigned long size;
+ unsigned long *maskp;
+};
+
+int numa_available(void);
+struct bitmask *numa_allocate_nodemask(void);
+void numa_bitmask_free(struct bitmask *);
+void numa_set_localalloc(void);
+void numa_set_preferred(int node);
+
+#endif /* <numa.h> for sparse. */
--
2.38.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev