summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@ovn.org>2023-01-17 18:08:27 +0100
committerIlya Maximets <i.maximets@ovn.org>2023-02-03 15:58:29 +0100
commitd6501c66050ad7ad54081f2104a01a28f1b3ce42 (patch)
treec8ffbd27ebec1f7815661ccb631936a431d20257 /include
parent4fd2d46c01f2fabcd2fbcdc805d85d9d9190fc8c (diff)
downloadopenvswitch-d6501c66050ad7ad54081f2104a01a28f1b3ce42.tar.gz
sparse: Fix numa.h for libnuma >= 2.0.13.
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.") Reviewed-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'include')
-rw-r--r--include/sparse/numa.h23
1 files 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. */