]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bpf: Allow BPF_PROG_TYPE_STRUCT_OPS programs to be sleepable
authorDavid Vernet <void@manifault.com>
Wed, 25 Jan 2023 16:47:32 +0000 (10:47 -0600)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 25 Jan 2023 18:25:57 +0000 (10:25 -0800)
commit1e12d3ef47d228e4e7d30f9bc5e6744ede90319c
tree920700d659b11adaaa5812ac4639cc006d7f4de6
parent2514a31241e1e9067d379e0fbdb60e4bc2bf4659
bpf: Allow BPF_PROG_TYPE_STRUCT_OPS programs to be sleepable

BPF struct_ops programs currently cannot be marked as sleepable. This
need not be the case -- struct_ops programs can be sleepable, and e.g.
invoke kfuncs that export the KF_SLEEPABLE flag. So as to allow future
struct_ops programs to invoke such kfuncs, this patch updates the
verifier to allow struct_ops programs to be sleepable. A follow-on patch
will add support to libbpf for specifying struct_ops.s as a sleepable
struct_ops program, and then another patch will add testcases to the
dummy_st_ops selftest suite which test sleepable struct_ops behavior.

Signed-off-by: David Vernet <void@manifault.com>
Link: https://lore.kernel.org/r/20230125164735.785732-2-void@manifault.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/verifier.c
tools/testing/selftests/bpf/verifier/sleepable.c