bpf: Pass const struct bpf_prog * to .check_member
authorDavid Vernet <void@manifault.com>
Wed, 25 Jan 2023 16:47:34 +0000 (10:47 -0600)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 25 Jan 2023 18:25:57 +0000 (10:25 -0800)
commit51a52a29ebaa8395de090fa415c6e1b2899a50f1
tree03797261214da5c39912a7a5eae62fefcad1ea62
parent913b2255c3d876254e968f1e8e2c817cca283a29
bpf: Pass const struct bpf_prog * to .check_member

The .check_member field of struct bpf_struct_ops is currently passed the
member's btf_type via const struct btf_type *t, and a const struct
btf_member *member. This allows the struct_ops implementation to check
whether e.g. an ops is supported, but it would be useful to also enforce
that the struct_ops prog being loaded for that member has other
qualities, like being sleepable (or not). This patch therefore updates
the .check_member() callback to also take a const struct bpf_prog *prog
argument.

Signed-off-by: David Vernet <void@manifault.com>
Link: https://lore.kernel.org/r/20230125164735.785732-4-void@manifault.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf.h
kernel/bpf/verifier.c
net/ipv4/bpf_tcp_ca.c