diff options
author | David Vernet <void@manifault.com> | 2023-01-25 17:47:34 +0100 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-01-25 19:25:57 +0100 |
commit | 51a52a29ebaa8395de090fa415c6e1b2899a50f1 (patch) | |
tree | 03797261214da5c39912a7a5eae62fefcad1ea62 /kernel/bpf | |
parent | libbpf: Support sleepable struct_ops.s section (diff) | |
download | linux-51a52a29ebaa8395de090fa415c6e1b2899a50f1.tar.xz linux-51a52a29ebaa8395de090fa415c6e1b2899a50f1.zip |
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 'kernel/bpf')
-rw-r--r-- | kernel/bpf/verifier.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index c8907df49f81..6bd097e0d45f 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -16792,7 +16792,7 @@ static int check_struct_ops_btf_id(struct bpf_verifier_env *env) } if (st_ops->check_member) { - int err = st_ops->check_member(t, member); + int err = st_ops->check_member(t, member, prog); if (err) { verbose(env, "attach to unsupported member %s of struct %s\n", |