Re: [PATCH bpf-next] bpf: sched_ext: Mark ops argument container pointer fields as trusted
From: Kumar Kartikeya Dwivedi
Date: Thu Aug 20 2026 - 10:37:26 EST
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 <tj@xxxxxxxxxx>
> ---
Acked-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx>
I (or others) will add Fixes tag when applying, no need to respin.
> [...]