libbpf: Support sleepable struct_ops.s section
authorDavid Vernet <void@manifault.com>
Wed, 25 Jan 2023 16:47:33 +0000 (10:47 -0600)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 25 Jan 2023 18:25:57 +0000 (10:25 -0800)
In a prior change, the verifier was updated to support sleepable
BPF_PROG_TYPE_STRUCT_OPS programs. A caller could set the program as
sleepable with bpf_program__set_flags(), but it would be more ergonomic
and more in-line with other sleepable program types if we supported
suffixing a struct_ops section name with .s to indicate that it's
sleepable.

Signed-off-by: David Vernet <void@manifault.com>
Link: https://lore.kernel.org/r/20230125164735.785732-3-void@manifault.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/libbpf.c

index 27d9faa..eed5cec 100644 (file)
@@ -8605,6 +8605,7 @@ static const struct bpf_sec_def section_defs[] = {
        SEC_DEF("cgroup/setsockopt",    CGROUP_SOCKOPT, BPF_CGROUP_SETSOCKOPT, SEC_ATTACHABLE),
        SEC_DEF("cgroup/dev",           CGROUP_DEVICE, BPF_CGROUP_DEVICE, SEC_ATTACHABLE_OPT),
        SEC_DEF("struct_ops+",          STRUCT_OPS, 0, SEC_NONE),
+       SEC_DEF("struct_ops.s+",        STRUCT_OPS, 0, SEC_SLEEPABLE),
        SEC_DEF("sk_lookup",            SK_LOOKUP, BPF_SK_LOOKUP, SEC_ATTACHABLE),
 };