On Mon, Dec 11, 2023 at 07:28:40PM +0800, Hou Tao wrote: > From: Hou Tao <houtao1@xxxxxxxxxx> > > An abnormally big cnt may be passed to link_create.uprobe_multi.cnt, > and it will trigger the following warning in kvmalloc_node(): > > if (unlikely(size > INT_MAX)) { > WARN_ON_ONCE(!(flags & __GFP_NOWARN)); > return NULL; > } > > Fix the warning by using __GFP_NOWARN when invoking kvzalloc() in > bpf_uprobe_multi_link_attach(). > > Fixes: 89ae89f53d20 ("bpf: Add multi uprobe link") > Reported-by: xingwei lee <xrivendell7@xxxxxxxxx> > Closes: https://lore.kernel.org/bpf/CABOYnLwwJY=yFAGie59LFsUsBAgHfroVqbzZ5edAXbFE3YiNVA@xxxxxxxxxxxxxx > Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx> thanks, jirka > --- > kernel/trace/bpf_trace.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > index 774cf476a892..07b9b5896d6c 100644 > --- a/kernel/trace/bpf_trace.c > +++ b/kernel/trace/bpf_trace.c > @@ -3378,7 +3378,7 @@ int bpf_uprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr > err = -ENOMEM; > > link = kzalloc(sizeof(*link), GFP_KERNEL); > - uprobes = kvcalloc(cnt, sizeof(*uprobes), GFP_KERNEL); > + uprobes = kvcalloc(cnt, sizeof(*uprobes), GFP_KERNEL | __GFP_NOWARN); > > if (!uprobes || !link) > goto error_free; > -- > 2.29.2 >