bpf: xdp: Register generic_kfunc_set with XDP programs
authorDaniel Xu <dxu@dxuuu.xyz>
Thu, 14 Dec 2023 22:56:25 +0000 (15:56 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 15 Dec 2023 03:12:16 +0000 (19:12 -0800)
Registering generic_kfunc_set with XDP programs enables some of the
newer BPF features inside XDP -- namely tree based data structures and
BPF exceptions.

The current motivation for this commit is to enable assertions inside
XDP bpf progs. Assertions are a standard and useful tool to encode
intent.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Link: https://lore.kernel.org/r/d07d4614b81ca6aada44fcb89bb6b618fb66e4ca.1702594357.git.dxu@dxuuu.xyz
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/helpers.c

index b3be5742d6f1ab709f9bcacd13f3eb041b1e589a..b0b485126a76d0d92087054cb021b2b92960258f 100644 (file)
@@ -2630,6 +2630,7 @@ static int __init kfunc_init(void)
 
        ret = register_btf_kfunc_id_set(BPF_PROG_TYPE_TRACING, &generic_kfunc_set);
        ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_SCHED_CLS, &generic_kfunc_set);
+       ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_XDP, &generic_kfunc_set);
        ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, &generic_kfunc_set);
        ret = ret ?: register_btf_id_dtor_kfuncs(generic_dtors,
                                                  ARRAY_SIZE(generic_dtors),