Description
In the Linux kernel, the following vulnerability has been resolved: cpuidle: Skip governor when only one idle state is available On certain platforms (PowerNV systems without a power-mgt DT node), cpuidle may register only a single idle state. In cases where that single state is a polling state (state 0), the ladder governor may incorrectly treat state 1 as the first usable state and pass an out-of-bounds index. This can lead to a NULL enter callback being invoked, ultimately resulting in a system crash. [ 13.342636] cpuidle-powernv : Only Snooze is available [ 13.351854] Faulting instruction address: 0x00000000 [ 13.376489] NIP [0000000000000000] 0x0 [ 13.378351] LR [c000000001e01974] cpuidle_enter_state+0x2c4/0x668 Fix this by adding a bail-out in cpuidle_select() that returns state 0 directly when state_count <= 1, bypassing the governor and keeping the tick running.
Product status
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before a0f7e804edc82e513d1ccb7c95ed8b351522ec81
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before 5d103a38e2ae96eca57fd17161bcd29bd4622d1c
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before 4da2b897283c39980d6ae09dc1560fcd937879e5
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before 5c577ac939bca486cb02069505cfe47a5312ce02
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before 8f6833d919bae915ead6c599a53e81e19b32da52
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before 63ae78336f40bcd9a44952a7c6bafb9c88a8effd
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before a0724e40a58a0e323c59707edeae5b71d15800dc
dc2251bf98c66db3f4e055b751968f0871037ae4 (git) before e5c9ffc6ae1bcdb1062527d611043681ac301aca
4.14
Any version before 4.14
5.10.252 (semver)
5.15.202 (semver)
6.1.165 (semver)
6.6.128 (semver)
6.12.75 (semver)
6.18.14 (semver)
6.19.4 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/a0f7e804edc82e513d1ccb7c95ed8b351522ec81
git.kernel.org/...c/5d103a38e2ae96eca57fd17161bcd29bd4622d1c
git.kernel.org/...c/4da2b897283c39980d6ae09dc1560fcd937879e5
git.kernel.org/...c/5c577ac939bca486cb02069505cfe47a5312ce02
git.kernel.org/...c/8f6833d919bae915ead6c599a53e81e19b32da52
git.kernel.org/...c/63ae78336f40bcd9a44952a7c6bafb9c88a8effd
git.kernel.org/...c/a0724e40a58a0e323c59707edeae5b71d15800dc
git.kernel.org/...c/e5c9ffc6ae1bcdb1062527d611043681ac301aca