On Mon, Jun 22, 2026 at 11:59 PM Alexei Starovoitov <[email protected]> wrote: > > > > > > > diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c > > > > index 1a721fc4bef5..b41b02173e24 100644 > > > > --- a/kernel/bpf/trampoline.c > > > > +++ b/kernel/bpf/trampoline.c > > > > @@ -859,6 +859,9 @@ static int bpf_trampoline_add_prog(struct > > > > bpf_trampoline *tr, > > > > } > > > > if (cnt >= BPF_MAX_TRAMP_LINKS) > > > > return -E2BIG; > > > > + if (node->link->prog->aux->attach_limit && > > > > + tr->progs_cnt[kind] >= node->link->prog->aux->attach_limit) > > > > + return -E2BIG; > > > > > > No need. The check inside kfunc is enough. > > > > > > > Paul wanted this check because it occurs at bpf prog attach time, > > whereas the one in the kfunc is at inode creation time. > > Sorry, we're not adding redundant code to the verifier.
Thanks, will send v4 soon.

