bpf: Make bpf_get_current_[ancestor_]cgroup_id() available for all program types

Bugzilla: https://bugzilla.redhat.com/2221599

commit c501bf55c88b834adefda870c7c092ec9052a437
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Mar 2 09:42:59 2023 -1000

    bpf: Make bpf_get_current_[ancestor_]cgroup_id() available for all program types
    
    These helpers are safe to call from any context and there's no reason to
    restrict access to them. Remove them from bpf_trace and filter lists and add
    to bpf_base_func_proto() under perfmon_capable().
    
    v2: After consulting with Andrii, relocated in bpf_base_func_proto() so that
        they require bpf_capable() but not perfomon_capable() as it doesn't read
        from or affect others on the system.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/r/ZAD8QyoszMZiTzBY@slm.duckdns.org
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>

Signed-off-by: Artem Savkov <asavkov@redhat.com>
This commit is contained in:
Artem Savkov 2023-07-10 15:02:13 +02:00
parent 8391eb1334
commit 74f2bb6c6c
4 changed files with 4 additions and 14 deletions

View File

@ -2529,10 +2529,6 @@ cgroup_current_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
return &bpf_get_current_pid_tgid_proto;
case BPF_FUNC_get_current_comm:
return &bpf_get_current_comm_proto;
case BPF_FUNC_get_current_cgroup_id:
return &bpf_get_current_cgroup_id_proto;
case BPF_FUNC_get_current_ancestor_cgroup_id:
return &bpf_get_current_ancestor_cgroup_id_proto;
#ifdef CONFIG_CGROUP_NET_CLASSID
case BPF_FUNC_get_cgroup_classid:
return &bpf_get_cgroup_classid_curr_proto;

View File

@ -1748,6 +1748,10 @@ bpf_base_func_proto(enum bpf_func_id func_id)
return &bpf_cgrp_storage_get_proto;
case BPF_FUNC_cgrp_storage_delete:
return &bpf_cgrp_storage_delete_proto;
case BPF_FUNC_get_current_cgroup_id:
return &bpf_get_current_cgroup_id_proto;
case BPF_FUNC_get_current_ancestor_cgroup_id:
return &bpf_get_current_ancestor_cgroup_id_proto;
#endif
default:
break;

View File

@ -1453,10 +1453,6 @@ bpf_tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
NULL : &bpf_probe_read_compat_str_proto;
#endif
#ifdef CONFIG_CGROUPS
case BPF_FUNC_get_current_cgroup_id:
return &bpf_get_current_cgroup_id_proto;
case BPF_FUNC_get_current_ancestor_cgroup_id:
return &bpf_get_current_ancestor_cgroup_id_proto;
case BPF_FUNC_cgrp_storage_get:
return &bpf_cgrp_storage_get_proto;
case BPF_FUNC_cgrp_storage_delete:

View File

@ -8165,12 +8165,6 @@ sk_msg_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
return &bpf_sk_storage_delete_proto;
case BPF_FUNC_get_netns_cookie:
return &bpf_get_netns_cookie_sk_msg_proto;
#ifdef CONFIG_CGROUPS
case BPF_FUNC_get_current_cgroup_id:
return &bpf_get_current_cgroup_id_proto;
case BPF_FUNC_get_current_ancestor_cgroup_id:
return &bpf_get_current_ancestor_cgroup_id_proto;
#endif
#ifdef CONFIG_CGROUP_NET_CLASSID
case BPF_FUNC_get_cgroup_classid:
return &bpf_get_cgroup_classid_curr_proto;