]> git.ipfire.org Git - thirdparty/linux.git/commit
sched_ext: Fix scx_bpf_dsq_insert() backward binary compatibility
authorTejun Heo <tj@kernel.org>
Tue, 21 Oct 2025 20:39:24 +0000 (10:39 -1000)
committerTejun Heo <tj@kernel.org>
Tue, 21 Oct 2025 20:40:15 +0000 (10:40 -1000)
commit2dbbdeda77a61b39dc4a34dfce873907cfea2c4b
tree31901783434e9ad08f0eded4137d289a8743eaa1
parent67fa319f5fff523a17993eafe990ad11aa5d6be9
sched_ext: Fix scx_bpf_dsq_insert() backward binary compatibility

cded46d97159 ("sched_ext: Make scx_bpf_dsq_insert*() return bool")
introduced a new bool-returning scx_bpf_dsq_insert() and renamed the old
void-returning version to scx_bpf_dsq_insert___compat, with the expectation
that libbpf would match old binaries to the ___compat variant, maintaining
backward binary compatibility. However, while libbpf ignores ___suffix on
the BPF side when matching symbols, it doesn't do so for kernel-side symbols.
Old binaries compiled with the original scx_bpf_dsq_insert() could no longer
resolve the symbol.

Fix by reversing the naming: Keep scx_bpf_dsq_insert() as the old
void-returning interface and add ___v2 to the new bool-returning version.
This allows old binaries to continue working while new code can use the
___v2 variant. Once libbpf is updated to ignore kernel-side ___SUFFIX, the
___v2 suffix can be dropped when the compat interface is removed.

v2: Use ___v2 instead of ___new.

Fixes: cded46d97159 ("sched_ext: Make scx_bpf_dsq_insert*() return bool")
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/sched/ext.c
tools/sched_ext/include/scx/compat.bpf.h