Commit 6a8dab043c64 for kernel

commit 6a8dab043c649450ee58c84c3c6051def96778ed
Merge: c44db6c82014 b06ccbabe250
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Mar 3 14:14:20 2026 -0800

    Merge tag 'sched_ext-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext

    Pull sched_ext fixes from Tejun Heo:

     - Fix starvation of scx_enable() under fair-class saturation by
       offloading the enable path to an RT kthread

     - Fix out-of-bounds access in idle mask initialization on systems with
       non-contiguous NUMA node IDs

     - Fix a preemption window during scheduler exit and a refcount
       underflow in cgroup init error path

     - Fix SCX_EFLAG_INITIALIZED being a no-op flag

     - Add READ_ONCE() annotations for KCSAN-clean lockless accesses and
       replace naked scx_root dereferences with container_of() in kobject
       callbacks

     - Tooling and selftest fixes: compilation issues with clang 17,
       strtoul() misuse, unused options cleanup, and Kconfig sync

    * tag 'sched_ext-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext:
      sched_ext: Fix starvation of scx_enable() under fair-class saturation
      sched_ext: Remove redundant css_put() in scx_cgroup_init()
      selftests/sched_ext: Fix peek_dsq.bpf.c compile error for clang 17
      selftests/sched_ext: Add -fms-extensions to bpf build flags
      tools/sched_ext: Add -fms-extensions to bpf build flags
      sched_ext: Use READ_ONCE() for plain reads of scx_watchdog_timeout
      sched_ext: Replace naked scx_root dereferences in kobject callbacks
      sched_ext: Use READ_ONCE() for the read side of dsq->nr update
      tools/sched_ext: fix strtoul() misuse in scx_hotplug_seq()
      sched_ext: Fix SCX_EFLAG_INITIALIZED being a no-op flag
      sched_ext: Fix out-of-bounds access in scx_idle_init_masks()
      sched_ext: Disable preemption between scx_claim_exit() and kicking helper work
      tools/sched_ext: Add Kconfig to sync with upstream
      tools/sched_ext: Sync README.md Kconfig with upstream scx
      selftests/sched_ext: Remove duplicated unistd.h include in rt_stall.c
      tools/sched_ext: scx_sdt: Remove unused '-f' option
      tools/sched_ext: scx_central: Remove unused '-p' option
      selftests/sched_ext: Fix unused-result warning for read()
      selftests/sched_ext: Abort test loop on signal

diff --cc kernel/sched/ext_idle.c
index c5a3b0bac7c3,e2da6c3968a6..ba298ac3ce6c
--- a/kernel/sched/ext_idle.c
+++ b/kernel/sched/ext_idle.c
@@@ -663,9 -663,9 +663,8 @@@ void scx_idle_init_masks(void
  	BUG_ON(!alloc_cpumask_var(&scx_idle_global_masks.cpu, GFP_KERNEL));
  	BUG_ON(!alloc_cpumask_var(&scx_idle_global_masks.smt, GFP_KERNEL));

- 	/* Allocate per-node idle cpumasks */
- 	scx_idle_node_masks = kzalloc_objs(*scx_idle_node_masks,
- 					   num_possible_nodes());
+ 	/* Allocate per-node idle cpumasks (use nr_node_ids for non-contiguous NUMA nodes) */
 -	scx_idle_node_masks = kcalloc(nr_node_ids,
 -				      sizeof(*scx_idle_node_masks), GFP_KERNEL);
++	scx_idle_node_masks = kzalloc_objs(*scx_idle_node_masks, nr_node_ids);
  	BUG_ON(!scx_idle_node_masks);

  	for_each_node(i) {