CVE-2025-21657

sched_ext: Replace rq_lock() to raw_spin_rq_lock() in scx_ops_bypass()

published January 21, 2025

CVSS
—
EPSS
0%
Percentile
6.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

sched_ext: Replace rq_lock() to raw_spin_rq_lock() in scx_ops_bypass()

scx_ops_bypass() iterates all CPUs to re-enqueue all the scx tasks.

For each CPU, it acquires a lock using rq_lock() regardless of whether

a CPU is offline or the CPU is currently running a task in a higher

scheduler class (e.g., deadline). The rq_lock() is supposed to be used

for online CPUs, and the use of rq_lock() may trigger an unnecessary

warning in rq_pin_lock(). Therefore, replace rq_lock() to

raw_spin_rq_lock() in scx_ops_bypass().

Without this change, we observe the following warning:

===== START =====

[ 6.615205] rq->balance_callback && rq->balance_callback != &balance_push_callback

[ 6.615208] WARNING: CPU: 2 PID: 0 at kernel/sched/sched.h:1730 __schedule+0x1130/0x1c90

===== END =====

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00176 · 6.7th percentile
Published
2025-01-21T12:18Z
EPSS history
Timeline
  • 21 JAN 12:18Z
    sched_ext: Replace rq_lock() to raw_spin_rq_lock() in scx_ops_bypass()
    cvelistv5