diff options
author | Alexei Starovoitov <ast@kernel.org> | 2021-07-14 17:54:15 -0700 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2021-07-15 22:31:10 +0200 |
commit | 7ddc80a476c2d599246028af5808d15f9e24c109 (patch) | |
tree | 18cf3ae170f0b9292698f94128dd44afd57de356 /include | |
parent | bfc6bb74e4f16ab264fa73398a7a79d7d2afac2e (diff) | |
download | linux-stable-7ddc80a476c2d599246028af5808d15f9e24c109.tar.gz linux-stable-7ddc80a476c2d599246028af5808d15f9e24c109.tar.bz2 linux-stable-7ddc80a476c2d599246028af5808d15f9e24c109.zip |
bpf: Teach stack depth check about async callbacks.
Teach max stack depth checking algorithm about async callbacks
that don't increase bpf program stack size.
Also add sanity check that bpf_tail_call didn't sneak into async cb.
It's impossible, since PTR_TO_CTX is not available in async cb,
hence the program cannot contain bpf_tail_call(ctx,...);
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/bpf/20210715005417.78572-10-alexei.starovoitov@gmail.com
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/bpf_verifier.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h index 242d0b1a0772..b847e1ccd10f 100644 --- a/include/linux/bpf_verifier.h +++ b/include/linux/bpf_verifier.h @@ -406,6 +406,7 @@ struct bpf_subprog_info { bool has_tail_call; bool tail_call_reachable; bool has_ld_abs; + bool is_async_cb; }; /* single container for all structs |