Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: regulator: core: use system_freezable_wq for init complete work schedule_delayed_work() uses system_wq, which is non-freezable, allowing regulator_init_complete_work to run concurrently with system suspend. This work fires ~30s after boot to disable unused regulators via I2C. When it races with PM suspend, the I2C adapter may already be suspended, triggering a -ESHUTDOWN warning in __i2c_transfer(): WARNING: ... at __i2c_transfer+0x36c/0x3c8 Call trace: __i2c_transfer i2c_transfer regmap_i2c_write _regmap_update_bits regulator_disable_regmap _regulator_do_disable regulator_late_cleanup regulator_init_complete_work_function process_one_work Switch to system_freezable_wq so the work is frozen before any device is suspended, eliminating the race.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 8b8c8d69b1a31004517d4c71a490f47bdf3405a2 before 8a2ae3ab348cce44120667277c2198f10cc348b1; affected d7ce17fba6c8e316ca9a554a87edddce6f862435 before 350a0cba90e1bd40b1fe5b396923d2f3a61d1056; affected 55576cf1853798e86f620766e23b604c9224c19c before 2cebc00340a585adeffe321bc41f1937eb79a4dc; affected 55576cf1853798e86f620766e23b604c9224c19c before 9cf65270c1c1717c84dcfacd58a782c1186b0cbf; affected 55576cf1853798e86f620766e23b604c9224c19c before dc8570a5b830190bf0b57017c35aef97cd6ad7d9; affected 55576cf1853798e86f620766e23b604c9224c19c before 6d0a2c5e210f2fba099129e6183ef81316a6ae48; affected 55576cf1853798e86f620766e23b604c9224c19c before 0d23d658d79925076026fff62a49b8c94e0e8922; affected 55576cf1853798e86f620766e23b604c9224c19c before 0b950aa7ec95e120b2bde745ca9a7ed3ce49d528; affected 55576cf1853798e86f620766e23b604c9224c19c before 29dc2e24f6adb36dcb884acf455644c397a67471; affected 55576cf1853798e86f620766e23b604c9224c19c before 03eab318cedd6ae34ecd34533cd986edf5237164; affected c4f65c2fb0f5c488d4ae606fba94bb98dcf383fd; affected d6acb54716ffab29f15c66082bd751410b284764; affected 3fbfa415a5dd8fc78076c1ead160a03a058cd9f6; affected 4.9.195 before 4.9.207; affected 4.14.147 before 4.14.160; affected 4.19.77 before 4.20; affected 5.2.19 before 5.3; affected 5.3.4 before 5.4 |
| Linux / Linux | affected 5.4; unaffected 0 before 5.4; unaffected 4.9.207 through 4.9.*; unaffected 4.14.160 through 4.14.*; unaffected 5.10.270 through 5.10.*; unaffected 5.15.221 through 5.15.*; unaffected 6.1.188 through 6.1.*; unaffected 6.6.157 through 6.6.*; unaffected 6.12.110 through 6.12.*; unaffected 6.18.52 through 6.18.*; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/8a2ae3ab348cce44120667277c2198f10cc348b1
- https://git.kernel.org/stable/c/350a0cba90e1bd40b1fe5b396923d2f3a61d1056
- https://git.kernel.org/stable/c/2cebc00340a585adeffe321bc41f1937eb79a4dc
- https://git.kernel.org/stable/c/9cf65270c1c1717c84dcfacd58a782c1186b0cbf
- https://git.kernel.org/stable/c/dc8570a5b830190bf0b57017c35aef97cd6ad7d9
- https://git.kernel.org/stable/c/6d0a2c5e210f2fba099129e6183ef81316a6ae48
- https://git.kernel.org/stable/c/0d23d658d79925076026fff62a49b8c94e0e8922
- https://git.kernel.org/stable/c/0b950aa7ec95e120b2bde745ca9a7ed3ce49d528
- https://git.kernel.org/stable/c/29dc2e24f6adb36dcb884acf455644c397a67471
- https://git.kernel.org/stable/c/03eab318cedd6ae34ecd34533cd986edf5237164