diff options
author | David Vernet <void@manifault.com> | 2023-01-25 19:47:34 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-01-25 21:25:57 +0300 |
commit | 51a52a29ebaa8395de090fa415c6e1b2899a50f1 (patch) | |
tree | 03797261214da5c39912a7a5eae62fefcad1ea62 /net/ipv4/bpf_tcp_ca.c | |
parent | 913b2255c3d876254e968f1e8e2c817cca283a29 (diff) | |
download | linux-51a52a29ebaa8395de090fa415c6e1b2899a50f1.tar.xz |
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>
Diffstat (limited to 'net/ipv4/bpf_tcp_ca.c')
-rw-r--r-- | net/ipv4/bpf_tcp_ca.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/bpf_tcp_ca.c b/net/ipv4/bpf_tcp_ca.c index 4517d2bd186a..13fc0c185cd9 100644 --- a/net/ipv4/bpf_tcp_ca.c +++ b/net/ipv4/bpf_tcp_ca.c @@ -248,7 +248,8 @@ static int bpf_tcp_ca_init_member(const struct btf_type *t, } static int bpf_tcp_ca_check_member(const struct btf_type *t, - const struct btf_member *member) + const struct btf_member *member, + const struct bpf_prog *prog) { if (is_unsupported(__btf_member_bit_offset(t, member) / 8)) return -ENOTSUPP; |