diff options
author | 2022-10-13 08:27:38 -0700 | |
---|---|---|
committer | 2022-10-13 08:28:12 -0700 | |
commit | e7b09357453a99e6f9e74c39e9ca1363c22c0b96 (patch) | |
tree | bc4231cfacdb6fb9493d576ea718775f325086a0 /kernel | |
parent | Merge tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next (diff) | |
parent | selftests/bpf: Make bpf_user_ringbuf_drain() selftest callback return 1 (diff) | |
download | linux-rng-e7b09357453a99e6f9e74c39e9ca1363c22c0b96.tar.xz linux-rng-e7b09357453a99e6f9e74c39e9ca1363c22c0b96.zip |
Merge branch 'Allow bpf_user_ringbuf_drain() callbacks to return 1'
David Vernet says:
====================
The bpf_user_ringbuf_drain() helper function allows a BPF program to
specify a callback that is invoked when draining entries from a
BPF_MAP_TYPE_USER_RINGBUF ring buffer map. The API is meant to allow the
callback to return 0 if it wants to continue draining samples, and 1 if
it's done draining. Unfortunately, bpf_user_ringbuf_drain() landed shortly
after commit 1bfe26fb0827 ("bpf: Add verifier support for custom
callback return range"), which changed the default behavior of callbacks
to only support returning 0, and the corresponding necessary change to
bpf_user_ringbuf_drain() callbacks was missed.
This patch set fixes this oversight, and updates the user_ringbuf
selftests to return 1 in a callback to catch future instances of
regression.
====================
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/bpf/verifier.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 6f6d2d511c06..9ab7188d8f68 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -6946,6 +6946,7 @@ static int set_user_ringbuf_callback_state(struct bpf_verifier_env *env, __mark_reg_not_init(env, &callee->regs[BPF_REG_5]); callee->in_callback_fn = true; + callee->callback_ret_range = tnum_range(0, 1); return 0; } |