summaryrefslogtreecommitdiff
path: root/kernel/sched/ext.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2025-10-16 08:34:12 -1000
committerTejun Heo <tj@kernel.org>2025-10-16 08:34:12 -1000
commit075e3f7206c44dd5c72bae8c617d1cffbfd7a033 (patch)
tree78d948f84933cad10e5c3679e5e68aa176efacca /kernel/sched/ext.c
parent5aff3b319997eb8d0e25b8d2e3b5c88ed07395ac (diff)
parenta3c4a0a42e61aad1056a3d33fd603c1ae66d4288 (diff)
sched_ext: Merge branch 'for-6.18-fixes' into for-6.19
Pull sched_ext/for-6.18-fixes to sync trees to receive: 05e63305c85c ("sched_ext: Fix scx_kick_pseqs corruption on concurrent scheduler loads") to avoid conflicts with planned cgroup sub-sched support. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/sched/ext.c')
-rw-r--r--kernel/sched/ext.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index f9c0888ef279..5d6fdb31f18a 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -792,7 +792,7 @@ static void schedule_deferred(struct rq *rq)
return;
/* Don't do anything if there already is a deferred operation. */
- if (rq->scx.flags & SCX_RQ_BAL_PENDING)
+ if (rq->scx.flags & SCX_RQ_BAL_CB_PENDING)
return;
/*
@@ -4611,15 +4611,15 @@ static int scx_enable(struct sched_ext_ops *ops, struct bpf_link *link)
mutex_lock(&scx_enable_mutex);
- ret = alloc_kick_pseqs();
- if (ret)
- goto err_unlock;
-
if (scx_enable_state() != SCX_DISABLED) {
ret = -EBUSY;
- goto err_free_pseqs;
+ goto err_unlock;
}
+ ret = alloc_kick_pseqs();
+ if (ret)
+ goto err_unlock;
+
sch = scx_alloc_and_add_sched(ops);
if (IS_ERR(sch)) {
ret = PTR_ERR(sch);