diff options
| author | Cheng-Yang Chou <yphbchou0911@gmail.com> | 2026-03-08 01:26:28 +0800 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-03-07 08:10:25 -1000 |
| commit | 28c4ef2b2e57cb13bf784251e4abbf942d37b4ce (patch) | |
| tree | 0d3a4346f0879a53b885b05912b293d1debb8168 /kernel | |
| parent | ce897abc21b2d5e74981ff2b848f3a08a580d50a (diff) | |
| download | linux-28c4ef2b2e57cb13bf784251e4abbf942d37b4ce.tar.gz linux-28c4ef2b2e57cb13bf784251e4abbf942d37b4ce.zip | |
sched_ext: Fix scx_bpf_reenqueue_local() silently reenqueuing nothing
ffa7ae0724e4 ("sched_ext: Add reenq_flags plumbing to scx_bpf_dsq_reenq()")
introduced task_should_reenq() as a filter inside reenq_local(), requiring
SCX_REENQ_ANY to be set in order to match any task. scx_bpf_dsq_reenq()
handles this correctly by converting a bare reenq_flags=0 to SCX_REENQ_ANY,
but scx_bpf_reenqueue_local() was not updated and continued to call
reenq_local() with 0, causing it to silently reenqueue zero tasks.
Fix by passing SCX_REENQ_ANY directly.
Fixes: ffa7ae0724e4 ("sched_ext: Add reenq_flags plumbing to scx_bpf_dsq_reenq()")
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched/ext.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index d5849ed4cd3e..f6bafcfe0b93 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -8121,7 +8121,7 @@ __bpf_kfunc u32 scx_bpf_reenqueue_local(const struct bpf_prog_aux *aux) rq = cpu_rq(smp_processor_id()); lockdep_assert_rq_held(rq); - return reenq_local(sch, rq, 0); + return reenq_local(sch, rq, SCX_REENQ_ANY); } __bpf_kfunc_end_defs(); |
