CVE-2024-50249

ACPI: CPPC: Make rmw_lock a raw_spin_lock

State
Published
Severity
5.5 Medium
Published
Nov 9, 2024
Updated
May 23, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

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

ACPI: CPPC: Make rmw_lock a raw_spin_lock

The following BUG was triggered:

============================= [ BUG: Invalid wait context ] 6.12.0-rc2-XXX #406 Not tainted ----------------------------- kworker/1:1/62 is trying to lock: ffffff8801593030 (&cpc_ptr->rmw_lock){+.+.}-{3:3}, at: cpc_write+0xcc/0x370 other info that might help us debug this: context-{5:5} 2 locks held by kworker/1:1/62: #0: ffffff897ef5ec98 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2c/0x50 #1: ffffff880154e238 (&sg_policy->update_lock){....}-{2:2}, at: sugov_update_shared+0x3c/0x280 stack backtrace: CPU: 1 UID: 0 PID: 62 Comm: kworker/1:1 Not tainted 6.12.0-rc2-g9654bd3e8806 #406 Workqueue: 0x0 (events) Call trace: dump_backtrace+0xa4/0x130 show_stack+0x20/0x38 dump_stack_lvl+0x90/0xd0 dump_stack+0x18/0x28 __lock_acquire+0x480/0x1ad8 lock_acquire+0x114/0x310 _raw_spin_lock+0x50/0x70 cpc_write+0xcc/0x370 cppc_set_perf+0xa0/0x3a8 cppc_cpufreq_fast_switch+0x40/0xc0 cpufreq_driver_fast_switch+0x4c/0x218 sugov_update_shared+0x234/0x280 update_load_avg+0x6ec/0x7b8 dequeue_entities+0x108/0x830 dequeue_task_fair+0x58/0x408 __schedule+0x4f0/0x1070 schedule+0x54/0x130 worker_thread+0xc0/0x2e8 kthread+0x130/0x148 ret_from_fork+0x10/0x20

sugov_update_shared() locks a raw_spinlock while cpc_write() locks a spinlock.

To have a correct wait-type order, update rmw_lock to a raw spinlock and ensure that interrupts will be disabled on the CPU holding it.

[ rjw: Changelog edits ]

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 94e8c988468dafde1d2bfe0532a60a3117f6394b to before c46d6b02588000c27b7b869388c2c0278bd0d173Affected
  • f812ca13a0d3e3aa418da36b66ca40df0d6f9e60 to before 23039b4aaf1e82e0feea1060834d4ec34262e453Affected
  • 8ad28208be7bbe748e90442c45963ddbef0fd1e2 to before 0eb2b767c42fac61ab23c4063eb456baa4c2c262Affected
  • 20cde05aa8bcd7a5ff36a609d813189b7cdbe692 to before 43b1df48d1e7000a214acd1a81b8012ca8a929c8Affected
  • 60949b7b805424f21326b450ca4f1806c06d982e to before 1c10941e34c5fdc0357e46a25bd130d9cf40b925Affected
  • 82cee12ada68dfd438c7faca152dbfe042868743Affected
  • 6.10.13 to before 6.11Affected
LinuxLinux
  • 5.15.168 to before 5.15.171Affected
  • 6.1.113 to before 6.1.116Affected
  • 6.6.54 to before 6.6.60Affected
  • 6.11.2 to before 6.11.7Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.