Message ID | 20230212220923.258414-1-alexander.sverdlin@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 66dc3b9b9a6f4b5c7013f15c66073ddd20852b66 |
Headers | show |
Series | ASoC: ep93xx: ignore 0 Hz sysclk | expand |
On Sun, 12 Feb 2023 23:09:23 +0100, Alexander Sverdlin wrote: > Commit 2458adb8f92a > ("SoC: simple-card-utils: set 0Hz to sysclk when shutdown") > added a call to snd_soc_dai_set_sysclk() with 0 Hz frequency. Being > propagated further it causes a division by zero in clk-ep93xx driver: > > Division by zero in kernel. > CPU: 0 PID: 52 Comm: aplay Tainted: G W 6.2.0-rc4-... #1 > Hardware name: Generic DT based system > unwind_backtrace from show_stack+0x10/0x18 > show_stack from dump_stack_lvl+0x28/0x34 > dump_stack_lvl from __div0+0x10/0x1c > __div0 from Ldiv0+0x8/0x1c > Ldiv0 from ep93xx_mux_determine_rate+0x78/0x1d0 > ep93xx_mux_determine_rate from clk_core_round_rate_nolock+0x48/0xc8 > clk_core_round_rate_nolock from clk_core_set_rate_nolock+0x48/0x160 > clk_core_set_rate_nolock from clk_set_rate+0x30/0x8c > clk_set_rate from ep93xx_i2s_set_sysclk+0x30/0x6c > ep93xx_i2s_set_sysclk from snd_soc_dai_set_sysclk+0x3c/0xa4 > snd_soc_dai_set_sysclk from asoc_simple_shutdown+0xb8/0x164 > asoc_simple_shutdown from snd_soc_link_shutdown+0x44/0x54 > snd_soc_link_shutdown from soc_pcm_clean+0x78/0x180 > soc_pcm_clean from soc_pcm_close+0x28/0x40 > soc_pcm_close from snd_pcm_release_substream.part.0+0x3c/0x84 > snd_pcm_release_substream.part.0 from snd_pcm_release+0x40/0x88 > snd_pcm_release from __fput+0x74/0x278 > > [...] Applied to broonie/sound.git for-next Thanks! [1/1] ASoC: ep93xx: ignore 0 Hz sysclk commit: 66dc3b9b9a6f4b5c7013f15c66073ddd20852b66 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
diff --git a/sound/soc/cirrus/ep93xx-i2s.c b/sound/soc/cirrus/ep93xx-i2s.c index 982151330c89..f41712df7994 100644 --- a/sound/soc/cirrus/ep93xx-i2s.c +++ b/sound/soc/cirrus/ep93xx-i2s.c @@ -359,6 +359,8 @@ static int ep93xx_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, int clk_id, if (dir == SND_SOC_CLOCK_IN || clk_id != 0) return -EINVAL; + if (!freq) + return 0; return clk_set_rate(info->mclk, freq); }
Commit 2458adb8f92a ("SoC: simple-card-utils: set 0Hz to sysclk when shutdown") added a call to snd_soc_dai_set_sysclk() with 0 Hz frequency. Being propagated further it causes a division by zero in clk-ep93xx driver: Division by zero in kernel. CPU: 0 PID: 52 Comm: aplay Tainted: G W 6.2.0-rc4-... #1 Hardware name: Generic DT based system unwind_backtrace from show_stack+0x10/0x18 show_stack from dump_stack_lvl+0x28/0x34 dump_stack_lvl from __div0+0x10/0x1c __div0 from Ldiv0+0x8/0x1c Ldiv0 from ep93xx_mux_determine_rate+0x78/0x1d0 ep93xx_mux_determine_rate from clk_core_round_rate_nolock+0x48/0xc8 clk_core_round_rate_nolock from clk_core_set_rate_nolock+0x48/0x160 clk_core_set_rate_nolock from clk_set_rate+0x30/0x8c clk_set_rate from ep93xx_i2s_set_sysclk+0x30/0x6c ep93xx_i2s_set_sysclk from snd_soc_dai_set_sysclk+0x3c/0xa4 snd_soc_dai_set_sysclk from asoc_simple_shutdown+0xb8/0x164 asoc_simple_shutdown from snd_soc_link_shutdown+0x44/0x54 snd_soc_link_shutdown from soc_pcm_clean+0x78/0x180 soc_pcm_clean from soc_pcm_close+0x28/0x40 soc_pcm_close from snd_pcm_release_substream.part.0+0x3c/0x84 snd_pcm_release_substream.part.0 from snd_pcm_release+0x40/0x88 snd_pcm_release from __fput+0x74/0x278 There has been commit f1879d7b98dc ("ASoC: rockchip: ignore 0Hz sysclk"), but it prepared by far not all drivers. Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> --- sound/soc/cirrus/ep93xx-i2s.c | 2 ++ 1 file changed, 2 insertions(+)