bpf: Fix missing bpf_base_func_proto in cgroup_base_func_proto for CGROUP_NET=n
authorStanislav Fomichev <sdf@google.com>
Fri, 24 Apr 2020 23:59:41 +0000 (16:59 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sun, 26 Apr 2020 15:53:13 +0000 (08:53 -0700)
commit6890896bd765b0504761c61901c9804fca23bfb2
treedbeb4bd9847589b3f84f7c195158f2cded961204
parent745abfaa9eafa597d31fdf24a3249e5206a98768
bpf: Fix missing bpf_base_func_proto in cgroup_base_func_proto for CGROUP_NET=n

linux-next build bot reported compile issue [1] with one of its
configs. It looks like when we have CONFIG_NET=n and
CONFIG_BPF{,_SYSCALL}=y, we are missing the bpf_base_func_proto
definition (from net/core/filter.c) in cgroup_base_func_proto.

I'm reshuffling the code a bit to make it work. The common helpers
are moved into kernel/bpf/helpers.c and the bpf_base_func_proto is
exported from there.
Also, bpf_get_raw_cpu_id goes into kernel/bpf/core.c akin to existing
bpf_user_rnd_u32.

[1] https://lore.kernel.org/linux-next/CAKH8qBsBvKHswiX1nx40LgO+BGeTmb1NX8tiTttt_0uu6T3dCA@mail.gmail.com/T/#mff8b0c083314c68c2e2ef0211cb11bc20dc13c72

Fixes: 0456ea170cd6 ("bpf: Enable more helpers for BPF_PROG_TYPE_CGROUP_{DEVICE,SYSCTL,SOCKOPT}")
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Cc: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200424235941.58382-1-sdf@google.com
include/linux/bpf.h
include/linux/filter.h
kernel/bpf/core.c
kernel/bpf/helpers.c
net/core/filter.c