[PATCHSET sched_ext/for-7.1-fixes] sched_ext: Assorted fixes

Tejun Heo
2026-04-24T20:44:20Z

Hello,

This patchset collects fixes for issues surfaced by Chris Mason's
AI-assisted review of sched_ext. The bugs span use-after-free, leak,
lock/state inconsistency, rq-lock AA deadlock, and cross-task kfunc
misuse paths. Each patch stands on its own.

Based on sched_ext/for-7.1-fixes (510a27055446).

1: sched_ext: Unregister sub_kset on scheduler disable
2: sched_ext: Guard scx_dsq_move() against NULL kit->dsq after failed iter_new
3: sched_ext: Skip tasks with stale task_rq in bypass_lb_cpu()
4: sched_ext: Don't disable tasks in scx_sub_enable_workfn() abort path
5: sched_ext: Read scx_root under scx_cgroup_ops_rwsem in cgroup setters
6: sched_ext: Resolve caller's scheduler in scx_bpf_destroy_dsq() / scx_bpf_dsq_nr_queued()
7: sched_ext: Use dsq->first_task instead of list_empty() in dispatch_enqueue() FIFO-tail
8: sched_ext: Save and restore scx_locked_rq across SCX_CALL_OP
9: sched_ext: Pass held rq to SCX_CALL_OP() for dump_cpu/dump_task
10: sched_ext: Pass held rq to SCX_CALL_OP() for core_sched_before
11: sched_ext: Make bypass LB cpumasks per-scheduler
12: sched_ext: Align cgroup #ifdef guards with SUB_SCHED vs GROUP_SCHED
13: sched_ext: Refuse cross-task select_cpu_from_kfunc calls

Git tree: git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git fix-slop-review

kernel/sched/ext.c | 238 +++++++++++++++++++++++++++++---------------
kernel/sched/ext_idle.c | 19 +++-
kernel/sched/ext_internal.h | 2 +
3 files changed, 174 insertions(+), 85 deletions(-)

Thanks.

--
tejun