]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
sched_ext: fix flag check for deferred callbacks
authorEmil Tsalapatis <etsal@meta.com>
Thu, 16 Oct 2025 18:11:26 +0000 (11:11 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Dec 2025 10:46:08 +0000 (11:46 +0100)
commit a3c4a0a42e61aad1056a3d33fd603c1ae66d4288 upstream.

When scheduling the deferred balance callbacks, check SCX_RQ_BAL_CB_PENDING
instead of SCX_RQ_BAL_PENDING. This way schedule_deferred() properly tests
whether there is already a pending request for queue_balance_callback() to
be invoked at the end of .balance().

Fixes: a8ad873113d3 ("sched_ext: defer queue_balance_callback() until after ops.dispatch")
Signed-off-by: Emil Tsalapatis <emil@etsalapatis.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/sched/ext.c

index a1261ebf4e2a6626438a0d70c9aaac2f87294116..1e4740de66c2833a30675f677f6ac2aef12344fc 100644 (file)
@@ -821,7 +821,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;
 
        /*