Re: [PATCH bpf-next] bpf: sched_ext: Mark ops argument container pointer fields as trusted
"Kumar Kartikeya Dwivedi" <[email protected]>
| Newsgroups | dev.linux.lists.sched-ext,org.kernel.vger.bpf,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Thu Aug 20, 2026 at 7:20 AM CEST, Tejun Heo wrote: > Walking an unannotated pointer field of a trusted struct yields a bare > PTR_TO_BTF_ID in non-sleepable programs, which kfuncs and helpers accept, > but PTR_UNTRUSTED in sleepable programs, which they reject. This gets in the > way of making ops.init_task() sleepable, which schedulers want for > allocations. For example, passing args->cgroup into bpf_cgrp_storage_get() > then fails verification and the only recourse is round-tripping through the > cgroup ID with bpf_cgroup_from_id(). > > The pointer fields in the sched_ext ops argument containers are all pinned > by the callers for the duration of the ops calls and are never NULL. Add > them to the verifier's trusted-fields whitelist so that they are PTR_TRUSTED > in both sleepable and non-sleepable programs. > > Signed-off-by: Tejun Heo <[email protected]> > --- Acked-by: Kumar Kartikeya Dwivedi <[email protected]> I (or others) will add Fixes tag when applying, no need to respin. > [...]