Re: [PATCH] sched_ext: Fix NULL pointer deref and warnings during scx teardown

From: Tejun Heo

Date: Mon Feb 02 2026 - 12:16:55 EST


Hello,

On Mon, Feb 02, 2026 at 04:13:41PM +0100, Andrea Righi wrote:
> @@ -2619,6 +2619,9 @@ static void set_cpus_allowed_scx(struct task_struct *p,
>
> set_cpus_allowed_common(p, ac);
>
> + if (unlikely(!sch))
> + return;
> +

I don't quite understand how this would happen. set_cpu_allowed_scx() is
called from do_set_cpus_allowed() with task_rq locked. ie. the task *has* to
be on sched_ext for it to be called. It's straightforward task rq lock
synchronization, so there's no race window.

Combined with the failures in switching_to_scx() and switched_form_scx(), I
wonder whether what's actually broken is more something like the disable
path missing some tasks?

Thanks.

--
tejun