mirror of
https://github.com/torvalds/linux.git
synced 2026-05-21 21:37:25 +02:00
sched_ext: Clean up SCX_EXIT_NONE handling in scx_disable_workfn()
With the global states and disable machinery moved into scx_sched, scx_disable_workfn() can only be scheduled and run for the specific scheduler instance. This makes it impossible for scx_disable_workfn() to see SCX_EXIT_NONE. Turn that condition into WARN_ON_ONCE(). Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Andrea Righi <arighi@nvidia.com> Acked-by: Changwoo Min <changwoo@igalia.com>
This commit is contained in:
parent
bff3b5aec1
commit
9ba7f37e5b
|
|
@ -4752,13 +4752,9 @@ static void scx_disable_workfn(struct kthread_work *work)
|
|||
|
||||
kind = atomic_read(&sch->exit_kind);
|
||||
while (true) {
|
||||
/*
|
||||
* NONE indicates that a new scx_ops has been registered since
|
||||
* disable was scheduled - don't kill the new ops. DONE
|
||||
* indicates that the ops has already been disabled.
|
||||
*/
|
||||
if (kind == SCX_EXIT_NONE || kind == SCX_EXIT_DONE)
|
||||
if (kind == SCX_EXIT_DONE) /* already disabled? */
|
||||
return;
|
||||
WARN_ON_ONCE(kind == SCX_EXIT_NONE);
|
||||
if (atomic_try_cmpxchg(&sch->exit_kind, &kind, SCX_EXIT_DONE))
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user