[PATCH 5/5] samples/bpf: fix hbm build error

From: Matteo Croce
Date: Fri May 17 2019 - 20:49:41 EST


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