From: "Mickaël Salaün" <mic@digikod.net>
To: linux-kernel@vger.kernel.org
Cc: "Mickaël Salaün" <mic@digikod.net>,
netdev@vger.kernel.org, "Alexei Starovoitov" <ast@fb.com>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Shuah Khan" <shuah@kernel.org>
Subject: [PATCH net-next v1 6/7] bpf: Use the bpf_load_program() from the library
Date: Mon, 6 Feb 2017 00:14:27 +0100 [thread overview]
Message-ID: <20170205231428.23846-6-mic@digikod.net> (raw)
In-Reply-To: <20170205231428.23846-1-mic@digikod.net>
Replace bpf_prog_load() with bpf_load_program() calls.
Use the tools include directory instead of the installed one to allow
builds from other kernels.
Signed-off-by: Mickaël Salaün <mic@digikod.net>
Cc: Alexei Starovoitov <ast@fb.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Shuah Khan <shuah@kernel.org>
---
tools/testing/selftests/bpf/Makefile | 6 +++++-
tools/testing/selftests/bpf/bpf_sys.h | 21 ---------------------
tools/testing/selftests/bpf/test_tag.c | 6 ++++--
tools/testing/selftests/bpf/test_verifier.c | 8 +++++---
4 files changed, 14 insertions(+), 27 deletions(-)
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 769a6cb42b4b..712861492278 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -1,12 +1,16 @@
-CFLAGS += -Wall -O2 -I../../../../usr/include
+CFLAGS += -Wall -O2 -I../../../include/uapi -I../../../lib
test_objs = test_verifier test_tag test_maps test_lru_map test_lpm_map
TEST_PROGS := $(test_objs) test_kmod.sh
TEST_FILES := $(test_objs)
+LIBBPF := ../../../lib/bpf/bpf.o
all: $(test_objs)
+test_verifier: $(LIBBPF)
+test_tag: $(LIBBPF)
+
include ../lib.mk
clean:
diff --git a/tools/testing/selftests/bpf/bpf_sys.h b/tools/testing/selftests/bpf/bpf_sys.h
index 6b4565f2a3f2..e7bbe3e5402e 100644
--- a/tools/testing/selftests/bpf/bpf_sys.h
+++ b/tools/testing/selftests/bpf/bpf_sys.h
@@ -84,25 +84,4 @@ static inline int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
}
-static inline int bpf_prog_load(enum bpf_prog_type type,
- const struct bpf_insn *insns, size_t size_insns,
- const char *license, char *log, size_t size_log)
-{
- union bpf_attr attr = {};
-
- attr.prog_type = type;
- attr.insns = bpf_ptr_to_u64(insns);
- attr.insn_cnt = size_insns / sizeof(struct bpf_insn);
- attr.license = bpf_ptr_to_u64(license);
-
- if (size_log > 0) {
- attr.log_buf = bpf_ptr_to_u64(log);
- attr.log_size = size_log;
- attr.log_level = 1;
- log[0] = 0;
- }
-
- return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
-}
-
#endif /* __BPF_SYS__ */
diff --git a/tools/testing/selftests/bpf/test_tag.c b/tools/testing/selftests/bpf/test_tag.c
index 5f7c602f47d1..b77dc4b03e77 100644
--- a/tools/testing/selftests/bpf/test_tag.c
+++ b/tools/testing/selftests/bpf/test_tag.c
@@ -16,6 +16,8 @@
#include <linux/bpf.h>
#include <linux/if_alg.h>
+#include <bpf/bpf.h>
+
#include "../../../include/linux/filter.h"
#include "bpf_sys.h"
@@ -55,8 +57,8 @@ static int bpf_try_load_prog(int insns, int fd_map,
int fd_prog;
bpf_filler(insns, fd_map);
- fd_prog = bpf_prog_load(BPF_PROG_TYPE_SCHED_CLS, prog, insns *
- sizeof(struct bpf_insn), "", NULL, 0);
+ fd_prog = bpf_load_program(BPF_PROG_TYPE_SCHED_CLS, prog, insns, "", 0,
+ NULL, 0);
assert(fd_prog > 0);
if (fd_map > 0)
bpf_filler(insns, 0);
diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c
index 0d0912c7f03c..04a549e54f61 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -23,6 +23,8 @@
#include <linux/bpf_perf_event.h>
#include <linux/bpf.h>
+#include <bpf/bpf.h>
+
#include "../../../include/linux/filter.h"
#include "bpf_sys.h"
@@ -4456,9 +4458,9 @@ static void do_test_single(struct bpf_test *test, bool unpriv,
do_test_fixup(test, prog, &fd_f1, &fd_f2, &fd_f3);
- fd_prog = bpf_prog_load(prog_type ? : BPF_PROG_TYPE_SOCKET_FILTER,
- prog, prog_len * sizeof(struct bpf_insn),
- "GPL", bpf_vlog, sizeof(bpf_vlog));
+ fd_prog = bpf_load_program(prog_type ? : BPF_PROG_TYPE_SOCKET_FILTER,
+ prog, prog_len, "GPL", 0, bpf_vlog,
+ sizeof(bpf_vlog));
expected_ret = unpriv && test->result_unpriv != UNDEF ?
test->result_unpriv : test->result;
--
2.11.0
next prev parent reply other threads:[~2017-02-05 23:15 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-05 23:14 [PATCH net-next v1 1/7] bpf: Add missing header to the library Mickaël Salaün
2017-02-05 23:14 ` [PATCH net-next v1 2/7] samples/bpf: Ignore already processed ELF sections Mickaël Salaün
2017-02-05 23:14 ` [PATCH net-next v1 3/7] samples/bpf: Reset global variables Mickaël Salaün
2017-02-05 23:14 ` [PATCH net-next v1 4/7] tools: Sync {,tools/}include/uapi/linux/bpf.h Mickaël Salaün
2017-02-06 19:51 ` Mickaël Salaün
2017-02-05 23:14 ` [PATCH net-next v1 5/7] bpf: Simplify bpf_load_program() error handling in the library Mickaël Salaün
2017-02-05 23:14 ` Mickaël Salaün [this message]
2017-02-06 15:30 ` [PATCH net-next v1 6/7] bpf: Use the bpf_load_program() from " Daniel Borkmann
2017-02-06 19:16 ` Mickaël Salaün
2017-02-06 19:18 ` Daniel Borkmann
2017-02-06 21:30 ` Mickaël Salaün
2017-02-06 22:44 ` Daniel Borkmann
2017-02-06 22:46 ` Mickaël Salaün
2017-02-05 23:14 ` [PATCH net-next v1 7/7] bpf: Always test unprivileged programs Mickaël Salaün
2017-02-06 15:43 ` Daniel Borkmann
2017-02-06 16:09 ` Alexei Starovoitov
2017-02-06 19:24 ` Mickaël Salaün
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170205231428.23846-6-mic@digikod.net \
--to=mic@digikod.net \
--cc=ast@fb.com \
--cc=daniel@iogearbox.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).