diff options
author | Jiri Olsa <jolsa@kernel.org> | 2024-11-08 14:45:32 +0100 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2024-11-11 08:17:57 -0800 |
commit | 17c4b65a24938c6dd79496cce5df15f70d9c253c (patch) | |
tree | 35bb0ef611f1dee542daf201f2d5d36108073e66 /kernel/bpf | |
parent | dcf04676f347133a0c5944152e8d5110aa28d2dd (diff) | |
download | lwn-17c4b65a24938c6dd79496cce5df15f70d9c253c.tar.gz lwn-17c4b65a24938c6dd79496cce5df15f70d9c253c.zip |
bpf: Allow return values 0 and 1 for kprobe session
The kprobe session program can return only 0 or 1,
instruct verifier to check for that.
Fixes: 535a3692ba72 ("bpf: Add support for kprobe session attach")
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241108134544.480660-2-jolsa@kernel.org
Diffstat (limited to 'kernel/bpf')
-rw-r--r-- | kernel/bpf/verifier.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 7958d6ff6b73..7d8ed377b35d 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -16024,6 +16024,15 @@ static int check_return_code(struct bpf_verifier_env *env, int regno, const char return -ENOTSUPP; } break; + case BPF_PROG_TYPE_KPROBE: + switch (env->prog->expected_attach_type) { + case BPF_TRACE_KPROBE_SESSION: + range = retval_range(0, 1); + break; + default: + return 0; + } + break; case BPF_PROG_TYPE_SK_LOOKUP: range = retval_range(SK_DROP, SK_PASS); break; |