sched/ext: Fix invalid task state transitions on class switch
Published Sep 11, 2025
7.8
HIGHCVSS 3.1
EPSS 0.15%
Description
When enabling a sched_ext scheduler, we may trigger invalid task state transitions, resulting in warnings like the following (which can be easily reproduced by running the hotplug selftest in a loop):
sched_ext: Invalid task state transition 0 -> 3 for fish[770] WARNING: CPU: 18 PID: 787 at kernel/sched/ext.c:3862 scx_set_task_state+0x7c/0xc0 ... RIP: 0010:scx_set_task_state+0x7c/0xc0 ... Call Trace: <TASK> scx_enable_task+0x11f/0x2e0 switching_to_scx+0x24/0x110 scx_enable.isra.0+0xd14/0x13d0 bpf_struct_ops_link_create+0x136/0x1a0 __sys_bpf+0x1edd/0x2c30 __x64_sys_bpf+0x21/0x30 do_syscall_64+0xbb/0x370 entry_SYSCALL_64_after_hwframe+0x77/0x7f
This happens because we skip initialization for tasks that are already dead (with their usage counter set to zero), but we don't exclude them during the scheduling class transition phase.
Fix this by also skipping dead tasks during class swiching, preventing invalid task state transitions.
Affected products
-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 6.12StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<6.12
- Version 6.12.44StatusunaffectedConstraints<=6.12.*
- Version 6.16.4StatusunaffectedConstraints<=6.16.*
- Version 6.17StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
- ≥ 6.12 · < 6.12.44
- ≥ 6.13 · < 6.16.4
- 6.17
- 6.17
No data.
Red Hat Enterprise Linux 10
kernel
Not affected
Red Hat Enterprise Linux 6
kernel
Not affected
Red Hat Enterprise Linux 7
kernel
Not affected
Red Hat Enterprise Linux 7
kernel-rt
Not affected
Red Hat Enterprise Linux 8
kernel
Not affected
Red Hat Enterprise Linux 8
kernel-rt
Not affected
Red Hat Enterprise Linux 9
kernel
Not affected
Red Hat Enterprise Linux 9
kernel-rt
Not affected
| Product | Package | State | Advisory |
|---|---|---|---|
| Red Hat Enterprise Linux 10 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 6 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 8 | kernel-rt | Not affected | n/a |
| Red Hat Enterprise Linux 9 | kernel | Not affected | n/a |
| Red Hat Enterprise Linux 9 | kernel-rt | Not affected | n/a |
No package ranges for this CVE.
Remediation
No remediation recorded yet.
No CWE recorded.
References (9)
- https://access.redhat.com/security/cve/CVE-2025-39780 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2394609 Issue Tracking
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-28933 Advisory
- https://git.kernel.org/stable/c/6a32cbe95029ebe21cc08349fd7ef2a3d32d2043 Patch
- https://git.kernel.org/stable/c/786f6314604b34c3e7de5f733f4e08e35c448a50 Patch
- https://git.kernel.org/stable/c/ddf7233fcab6c247379d0928d46cc316ee122229 Patch
- https://lore.kernel.org/linux-cve-announce/2025091149-CVE-2025-39780-a1da@gregkh/T
- https://nvd.nist.gov/vuln/detail/CVE-2025-39780
- https://www.cve.org/CVERecord?id=CVE-2025-39780
Change history (0)
No recorded changes yet.