Fix the following build error by declaring bpf_spin_lock in hbm.c. Including the UAPI header generates tons of redefined symbol errors, and including it in hbm.h breaks hbm_out_kern.c. make -C samples/bpf/../../tools/lib/bpf/ RM='rm -rf' LDFLAGS= srctree=samples/bpf/../../ O= HOSTCC samples/bpf/hbm.o In file included from samples/bpf/hbm.c:49: samples/bpf/hbm.h:12:23: error: field ‘lock’ has incomplete type 12 | struct bpf_spin_lock lock; | ^~~~ make[2]: *** [scripts/Makefile.host:109: samples/bpf/hbm.o] Error 1 make[1]: *** [Makefile:1763: samples/bpf/] Error 2 Signed-off-by: Matteo Croce <mcroce@xxxxxxxxxx> --- samples/bpf/hbm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/samples/bpf/hbm.c b/samples/bpf/hbm.c index a79828ab273f..ca8e567b63c3 100644 --- a/samples/bpf/hbm.c +++ b/samples/bpf/hbm.c @@ -40,17 +40,22 @@ #include <fcntl.h> #include <linux/unistd.h> -#include <linux/bpf.h> #include <bpf/bpf.h> +#include <linux/bpf.h> #include "bpf_load.h" #include "bpf_rlimit.h" #include "cgroup_helpers.h" -#include "hbm.h" #include "bpf_util.h" #include "bpf/bpf.h" #include "bpf/libbpf.h" +struct bpf_spin_lock { + __u32 val; +}; + +#include "hbm.h" + bool outFlag = true; int minRate = 1000; /* cgroup rate limit in Mbps */ int rate = 1000; /* can grow if rate conserving is enabled */ -- 2.21.0