Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8b8c8d69b1a31004517d4c71a490f47bdf3405a2 to < 8a2ae3ab348cce44120667277c2198f10cc348b1affectedd7ce17fba6c8e316ca9a554a87edddce6f862435 to < 350a0cba90e1bd40b1fe5b396923d2f3a61d1056affected55576cf1853798e86f620766e23b604c9224c19c to < 2cebc00340a585adeffe321bc41f1937eb79a4dcaffected55576cf1853798e86f620766e23b604c9224c19c to < 9cf65270c1c1717c84dcfacd58a782c1186b0cbfaffected55576cf1853798e86f620766e23b604c9224c19c to < dc8570a5b830190bf0b57017c35aef97cd6ad7d9affected55576cf1853798e86f620766e23b604c9224c19c to < 6d0a2c5e210f2fba099129e6183ef81316a6ae48affected55576cf1853798e86f620766e23b604c9224c19c to < 0d23d658d79925076026fff62a49b8c94e0e8922affected55576cf1853798e86f620766e23b604c9224c19c to < 0b950aa7ec95e120b2bde745ca9a7ed3ce49d528affected55576cf1853798e86f620766e23b604c9224c19c to < 29dc2e24f6adb36dcb884acf455644c397a67471affected55576cf1853798e86f620766e23b604c9224c19c to < 03eab318cedd6ae34ecd34533cd986edf5237164affectedc4f65c2fb0f5c488d4ae606fba94bb98dcf383fdaffectedd6acb54716ffab29f15c66082bd751410b284764affected3fbfa415a5dd8fc78076c1ead160a03a058cd9f6affected4.9.195 to < 4.9.207affected4.14.147 to < 4.14.160affected4.19.77 to < 4.20affected5.2.19 to < 5.3affected5.3.4 to < 5.4affected
Linux Linux
Default version status: affected
5.4affected0 to < 5.4unaffected4.9.207 to ≤ 4.9.*unaffected4.14.160 to ≤ 4.14.*unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
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 ↗