CVE-2024-56701

powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore

State
Published
Severity
Not scored
Published
Dec 28, 2024
Updated
May 11, 2026
Reserved
Dec 27, 2024

Read the record on cve.org

Description

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

powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore

The dtl_access_lock needs to be a rw_sempahore, a sleeping lock, because the code calls kmalloc() while holding it, which can sleep:

# echo 1 > /proc/powerpc/vcpudispatch_stats BUG: sleeping function called from invalid context at include/linux/sched/mm.h:337 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 199, name: sh preempt_count: 1, expected: 0 3 locks held by sh/199: #0: c00000000a0743f8 (sb_writers#3){.+.+}-{0:0}, at: vfs_write+0x324/0x438 #1: c0000000028c7058 (dtl_enable_mutex){+.+.}-{3:3}, at: vcpudispatch_stats_write+0xd4/0x5f4 #2: c0000000028c70b8 (dtl_access_lock){+.+.}-{2:2}, at: vcpudispatch_stats_write+0x220/0x5f4 CPU: 0 PID: 199 Comm: sh Not tainted 6.10.0-rc4 #152 Hardware name: IBM pSeries (emulated by qemu) POWER9 (raw) 0x4e1202 0xf000005 of:SLOF,HEAD hv:linux,kvm pSeries Call Trace: dump_stack_lvl+0x130/0x148 (unreliable) __might_resched+0x174/0x410 kmem_cache_alloc_noprof+0x340/0x3d0 alloc_dtl_buffers+0x124/0x1ac vcpudispatch_stats_write+0x2a8/0x5f4 proc_reg_write+0xf4/0x150 vfs_write+0xfc/0x438 ksys_write+0x88/0x148 system_call_exception+0x1c4/0x5a0 system_call_common+0xf4/0x258

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 06220d78f24a20549757be1014e57c382406cc92 to before 6956c0e7346ce1bbfc726755aa8da10d26e84276Affected
  • 06220d78f24a20549757be1014e57c382406cc92 to before f6ec133668757f84e5143f1eb141fd0b83778b9eAffected
  • 06220d78f24a20549757be1014e57c382406cc92 to before fa5b5ea257135e771b489c83a2e93b5935d0108eAffected
  • 06220d78f24a20549757be1014e57c382406cc92 to before a246daa26b717e755ccc9061f47f7cd1c0b358ddAffected
  • 06220d78f24a20549757be1014e57c382406cc92 to before b125d0cf1adde7b2b47d7337fed7e9133eea3463Affected
  • 06220d78f24a20549757be1014e57c382406cc92 to before 525e18f1ba7c2b098c8ba587fb397efb34a6574cAffected
  • 06220d78f24a20549757be1014e57c382406cc92 to before cadae3a45d23aa4f6485938a67cbc47aaaa25e38Affected
LinuxLinux
  • 5.3Affected
  • before 5.3Not affected
  • 5.10.231 through 5.10.*Not affected
  • 5.15.174 through 5.15.*Not affected
  • 6.1.120 through 6.1.*Not affected
  • 6.6.64 through 6.6.*Not affected
  • 6.11.11 through 6.11.*Not affected
  • 6.12.2 through 6.12.*Not affected
  • 6.13 and laterNot affected

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.