On Thu, 1 May 2025 11:11:52 -0700 Andrii Nakryiko <andrii.nakry...@gmail.com> wrote:
> On Sat, Apr 26, 2025 at 11:39 PM Feng Yang <yangfeng59...@163.com> wrote: > > > > From: Feng Yang <yangf...@kylinos.cn> > > > > if it works under NMI and doesn't use any context-dependent things, > > should be fine for any program type. The detailed discussion is in [1]. > > > > [1] > > https://lore.kernel.org/all/caef4bza6gk3dsrtosk6k3ozgthesndsrdd8sdeq-gis6oji...@mail.gmail.com/ > > > > Suggested-by: Andrii Nakryiko <andrii.nakry...@gmail.com> > > Signed-off-by: Feng Yang <yangf...@kylinos.cn> > > --- > > Changes in v2: > > - not expose compat probe read APIs to more program types. > > - Remove the prog->sleepable check added for copy_from_user, > > - or the summarization_freplace/might_sleep_with_might_sleep test will fail > > with the error "program of this type cannot use helper bpf_copy_from_user" > > - Link to v1: > > https://lore.kernel.org/all/20250425080032.327477-1-yangfeng59...@163.com/ > > --- > > kernel/bpf/cgroup.c | 6 ------ > > kernel/bpf/helpers.c | 38 +++++++++++++++++++++++++++++++++++++ > > kernel/trace/bpf_trace.c | 41 ++++------------------------------------ > > net/core/filter.c | 2 -- > > 4 files changed, 42 insertions(+), 45 deletions(-) > > > > diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c > > index 84f58f3d028a..dbdad5f42761 100644 > > --- a/kernel/bpf/cgroup.c > > +++ b/kernel/bpf/cgroup.c > > @@ -2607,16 +2607,10 @@ const struct bpf_func_proto * > > cgroup_current_func_proto(enum bpf_func_id func_id, const struct bpf_prog > > *prog) > > { > > switch (func_id) { > > - case BPF_FUNC_get_current_uid_gid: > > - return &bpf_get_current_uid_gid_proto; > > - case BPF_FUNC_get_current_comm: > > - return &bpf_get_current_comm_proto; > > #ifdef CONFIG_CGROUP_NET_CLASSID > > case BPF_FUNC_get_cgroup_classid: > > return &bpf_get_cgroup_classid_curr_proto; > > #endif > > this is the only one left, and again, it's just current-dependent, so > I'd just move this into base set and got rid of > cgroup_current_func_proto altogether (there are 5 callers, let's clean > them up) > > > - case BPF_FUNC_current_task_under_cgroup: > > - return &bpf_current_task_under_cgroup_proto; > > default: > > return NULL; > > } > > diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c > > index e3a2662f4e33..a01a2e55e17d 100644 > > --- a/kernel/bpf/helpers.c > > +++ b/kernel/bpf/helpers.c > > @@ -23,6 +23,7 @@ > > #include <linux/btf_ids.h> > > #include <linux/bpf_mem_alloc.h> > > #include <linux/kasan.h> > > +#include <linux/bpf_verifier.h> > > why do we need this include? > > [...] bpf_prog_check_recur in bpf_verifier.h.