linux/tools
Tejun Heo 94480606a6 sched_ext: Add a size argument to scx_bpf_cid_topo() so struct scx_cid_topo can grow
scx_bpf_cid_topo() copies struct scx_cid_topo into a buffer the BPF program
sized from its own vmlinux.h while the verifier sizes the write from the
running kernel's BTF. The struct may grow and each growth then breaks every
scheduler built against the older layout, rejected at load or written past
its buffer. This is the usual hole for a struct handed to BPF, closed
elsewhere with a size argument, and it was missed here.

Take the buffer size, copy the smaller of it and the kernel's struct and set
the rest to -1. Accesses to the copy are CO-RE relocated, so the struct can
grow by appending fields, which its comment now states. The kfunc changes in
place: the cid interface is still being finalized and no released scheduler
uses the current form.

Fixes: e9b55af47e ("sched_ext: Add topological CPU IDs (cids)")
Cc: stable@vger.kernel.org # v7.2+
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
2026-09-26 10:09:12 -10:00
..
accounting tools/accounting/getdelays: fix -Wformat-truncation warning in format_timespec 2026-05-28 21:24:40 -07:00
arch tools headers: Sync KVM headers with the kernel sources 2026-07-21 21:00:10 -03:00
bootconfig Bootconfig updates for v7.2 2026-06-16 17:29:24 +05:30
bpf bpf: Do not print a newline after disassembly in bpf_verbose_insn() 2026-08-08 11:05:49 +02:00
build perf tools changes for v7.2: 2026-06-23 11:34:49 -07:00
certs
cgroup
counter
crypto
debugging
dma
docs
firewire
firmware
gpio
hv
iio iio: core: Add IIO_COVERAGE channel type 2026-05-31 11:01:50 +01:00
include Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 7.2-rc7 2026-08-07 23:04:17 +02:00
kvm/kvm_stat
laptop
leds
lib libbpf: Export btf__find_by_name_kind_own() 2026-07-30 12:48:08 -07:00
memory-model
mm slab changes for 7.2 - part 2 2026-06-22 08:28:48 -07:00
net tools/ynl: add missing uapi header deps in Makefile.deps 2026-06-24 19:30:55 -07:00
objtool objtool/rust: add one more noreturn Rust function for Rust 1.99.0 2026-07-11 14:20:54 +02:00
pcmcia
perf tools headers: Sync UAPI linux/fs.h with the kernel sources 2026-07-21 21:00:10 -03:00
power platform-drivers-x86 for v7.2-1 2026-06-23 08:31:33 -07:00
rcu
sched
sched_ext sched_ext: Add a size argument to scx_bpf_cid_topo() so struct scx_cid_topo can grow 2026-09-26 10:09:12 -10:00
scripts
sound
spi
testing selftests/sched_ext: Check the cmask cid-form ops.enable() receives 2026-09-19 04:09:37 -10:00
thermal
time
tracing rtla/timerlat_top: Fix on-threshold actions firing on signal 2026-07-21 15:42:08 +02:00
unittests
usb usbip: tools: support SuperSpeedPlus devices 2026-07-08 13:29:13 +02:00
verification verification/rvgen: Fix ltl2k writing True as a literal 2026-06-04 16:44:25 +02:00
virtio tools/virtio: add missing compat definitions for vhost_net_test 2026-07-01 19:02:56 -07:00
wmi
workqueue
writeback
Makefile