diff options
| author | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
| commit | 05b4a9a9bc37f1fa289a8f07b4fbfc3ae681b650 (patch) | |
| tree | 102d45a21e497d38a3d30e362c7bffe77449ca27 /include/linux/netdev_features.h | |
| parent | ea7c716a24aebe887e0990649ab697bd698cc325 (diff) | |
| download | linux-05b4a9a9bc37f1fa289a8f07b4fbfc3ae681b650.tar.xz | |
sched_ext: Reject NULL-sch callers in scx_bpf_task_set_slice/dsq_vtime
scx_prog_sched(aux) returns NULL for TRACING / SYSCALL BPF progs that
have no struct_ops association when the root scheduler has sub_attach
set. scx_bpf_task_set_slice() and scx_bpf_task_set_dsq_vtime() pass
that NULL into scx_task_on_sched(sch, p), which under
CONFIG_EXT_SUB_SCHED is rcu_access_pointer(p->scx.sched) == sch. For
any non-scx task p->scx.sched is NULL, so NULL == NULL returns true
and the authority gate is bypassed - a privileged but
non-struct_ops-associated prog can poke p->scx.slice /
p->scx.dsq_vtime on arbitrary tasks.
Reject !sch up front so the gate only admits callers with a resolved
scheduler.
Fixes: 245d09c594ea ("sched_ext: Enforce scheduler ownership when updating slice and dsq_vtime")
Reported-by: Chris Mason <clm@meta.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'include/linux/netdev_features.h')
0 files changed, 0 insertions, 0 deletions
