bpf: Use cgroup_{common,current}_func_proto in more hooks
authorStanislav Fomichev <sdf@google.com>
Tue, 23 Aug 2022 22:25:52 +0000 (15:25 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Aug 2022 23:08:21 +0000 (16:08 -0700)
commitbed89185af0de0d417e29ca1798df50f161b0231
tree769caab3492366205642cfab3b7abb2a1342aea5
parentdea6a4e17013382b20717664ebf3d7cc405e0952
bpf: Use cgroup_{common,current}_func_proto in more hooks

The following hooks are per-cgroup hooks but they are not
using cgroup_{common,current}_func_proto, fix it:

* BPF_PROG_TYPE_CGROUP_SKB (cg_skb)
* BPF_PROG_TYPE_CGROUP_SOCK_ADDR (cg_sock_addr)
* BPF_PROG_TYPE_CGROUP_SOCK (cg_sock)
* BPF_PROG_TYPE_LSM+BPF_LSM_CGROUP

Also:

* move common func_proto's into cgroup func_proto handlers
* make sure bpf_{g,s}et_retval are not accessible from recvmsg,
  getpeername and getsockname (return/errno is ignored in these
  places)
* as a side effect, expose get_current_pid_tgid, get_current_comm_proto,
  get_current_ancestor_cgroup_id, get_cgroup_classid to more cgroup
  hooks

Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/r/20220823222555.523590-3-sdf@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf.h
kernel/bpf/bpf_lsm.c
kernel/bpf/cgroup.c
net/core/filter.c