Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-43326

sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback

Description

In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback SCX_KICK_WAIT busy-waits in kick_cpus_irq_workfn() using smp_cond_load_acquire() until the target CPU's kick_sync advances. Because the irq_work runs in hardirq context, the waiting CPU cannot reschedule and its own kick_sync never advances. If multiple CPUs form a wait cycle, all CPUs deadlock. Replace the busy-wait in kick_cpus_irq_workfn() with resched_curr() to force the CPU through do_pick_task_scx(), which queues a balance callback to perform the wait. The balance callback drops the rq lock and enables IRQs following the sched_core_balance() pattern, so the CPU can process IPIs while waiting. The local CPU's kick_sync is advanced on entry to do_pick_task_scx() and continuously during the wait, ensuring any CPU that starts waiting for us sees the advancement and cannot form cyclic dependencies.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 90e55164dad42c6546b698c031697b224a320834 to < c3a7903f65cf4c7fb0477eb0f8b94f326a47fe54affected
  • 90e55164dad42c6546b698c031697b224a320834 to < 415cb193bb9736f0e830286c72a6fa8eb2a9cc5caffected

Linux Linux

Default version status: affected

  • 6.12affected
  • 0 to < 6.12unaffected
  • 6.19.12 to ≤ 6.19.*unaffected
  • 7.0 to ≤ *unaffected

References