Description
In the Linux kernel, the following vulnerability has been resolved: ASoC: samsung: i2s: enable op_clk in probe to balance runtime PM The probe function puts the device into the runtime PM active state with only the "iis" bus clock enabled, but it also sets priv->op_clk to the parent of the RCLK_SRC mux without enabling it. The runtime PM suspend callback disables both clocks, so the first runtime suspend after probe disables op_clk once more than it was enabled. On Exynos5250 Arndale both clocks resolve to the same EXYNOS_I2S_BUS gate, so this triggers the following warning during boot: WARNING: drivers/clk/clk.c:1270 at clk_core_disable+0xe4/0x23c, CPU#0: kworker/u8:3/45 i2s_bus already disabled ... Workqueue: pm pm_runtime_work Call trace: ... clk_core_disable from clk_disable+0x28/0x34 clk_disable from i2s_runtime_suspend+0x58/0x68 [snd_soc_i2s] i2s_runtime_suspend [snd_soc_i2s] from genpd_runtime_suspend+0xc4/0x298 genpd_runtime_suspend from __rpm_callback+0x48/0x18c __rpm_callback from rpm_callback+0x4c/0x50 rpm_callback from rpm_suspend+0xf4/0x718 rpm_suspend from pm_runtime_work+0x9c/0xa0 ... Fix this by enabling op_clk in probe right after getting it, so the clock state matches the runtime PM active state, and by disabling it in remove.
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
48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 09cda41564966c7f9d2a5fa7022af18b5d4161beaffected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 004c8ec5d71c01b93284042f1174b70cf1390e59affected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 05d79040b7ebd46862c4bf4864d373dad8b6fecbaffected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 2c64c30d493d82d5edc95811cede0083e1195822affected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 5dac6bf09b5a4fff2433629801309c3884c3e94aaffected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 64bb35079dcbc67901da1fe8c52c234cbcd17df3affected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < a728c12f8bd89947894e227d0f4f83a895ac9ab7affected48279c53fd1d09dc0d1b6ebb9f21732c507cea0b to < 7529254014764ae0b8c33d5c61a58f36c65b1a1caffected
Linux Linux
Default version status: affected
4.17affected0 to < 4.17unaffected5.10.273 to ≤ 5.10.*unaffected5.15.224 to ≤ 5.15.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.2.11 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/09cda41564966c7f9d2a5fa7022af18b5d4161be ↗
- https://git.kernel.org/stable/c/004c8ec5d71c01b93284042f1174b70cf1390e59 ↗
- https://git.kernel.org/stable/c/05d79040b7ebd46862c4bf4864d373dad8b6fecb ↗
- https://git.kernel.org/stable/c/2c64c30d493d82d5edc95811cede0083e1195822 ↗
- https://git.kernel.org/stable/c/5dac6bf09b5a4fff2433629801309c3884c3e94a ↗
- https://git.kernel.org/stable/c/64bb35079dcbc67901da1fe8c52c234cbcd17df3 ↗
- https://git.kernel.org/stable/c/a728c12f8bd89947894e227d0f4f83a895ac9ab7 ↗
- https://git.kernel.org/stable/c/7529254014764ae0b8c33d5c61a58f36c65b1a1c ↗