sound/soc/mediatek/mt8365/mt8365-dai-i2s.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
Given mt8365_dai_set_priv allocate priv_size space to copy priv_data which
means we should pass mt8365_i2s_priv[i] or "struct mtk_afe_i2s_priv"
instead of afe_priv which has the size of "struct mt8365_afe_private".
Otherwise the KASAN complains about.
[ 59.389765] BUG: KASAN: global-out-of-bounds in mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
...
[ 59.394789] Call trace:
[ 59.395167] dump_backtrace+0xa0/0x128
[ 59.395733] show_stack+0x20/0x38
[ 59.396238] dump_stack_lvl+0xe8/0x148
[ 59.396806] print_report+0x37c/0x5e0
[ 59.397358] kasan_report+0xac/0xf8
[ 59.397885] kasan_check_range+0xe8/0x190
[ 59.398485] asan_memcpy+0x3c/0x98
[ 59.399022] mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
[ 59.399928] mt8365_dai_i2s_register+0x1e8/0x2b0 [snd_soc_mt8365_pcm]
[ 59.400893] mt8365_afe_pcm_dev_probe+0x4d0/0xdf0 [snd_soc_mt8365_pcm]
[ 59.401873] platform_probe+0xcc/0x228
[ 59.402442] really_probe+0x340/0x9e8
[ 59.402992] driver_probe_device+0x16c/0x3f8
[ 59.403638] driver_probe_device+0x64/0x1d8
[ 59.404256] driver_attach+0x1dc/0x4c8
[ 59.404840] bus_for_each_dev+0x100/0x190
[ 59.405442] driver_attach+0x44/0x68
[ 59.405980] bus_add_driver+0x23c/0x500
[ 59.406550] driver_register+0xf8/0x3d0
[ 59.407122] platform_driver_register+0x68/0x98
[ 59.407810] mt8365_afe_pcm_driver_init+0x2c/0xff8 [snd_soc_mt8365_pcm]
Fixes: 402bbb13a195 ("ASoC: mediatek: mt8365: Add I2S DAI support")
Signed-off-by: Guoqing Jiang <guoqing.jiang@canonical.com>
---
V2:
1. fix issue reported by lkp, thanks.
sound/soc/mediatek/mt8365/mt8365-dai-i2s.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sound/soc/mediatek/mt8365/mt8365-dai-i2s.c b/sound/soc/mediatek/mt8365/mt8365-dai-i2s.c
index cae51756cead..cb9beb172ed5 100644
--- a/sound/soc/mediatek/mt8365/mt8365-dai-i2s.c
+++ b/sound/soc/mediatek/mt8365/mt8365-dai-i2s.c
@@ -812,11 +812,10 @@ static const struct snd_soc_dapm_route mtk_dai_i2s_routes[] = {
static int mt8365_dai_i2s_set_priv(struct mtk_base_afe *afe)
{
int i, ret;
- struct mt8365_afe_private *afe_priv = afe->platform_priv;
for (i = 0; i < DAI_I2S_NUM; i++) {
ret = mt8365_dai_set_priv(afe, mt8365_i2s_priv[i].id,
- sizeof(*afe_priv),
+ sizeof(mt8365_i2s_priv[i]),
&mt8365_i2s_priv[i]);
if (ret)
return ret;
--
2.34.1
On Thu, 10 Jul 2025 09:18:06 +0800, Guoqing Jiang wrote:
> Given mt8365_dai_set_priv allocate priv_size space to copy priv_data which
> means we should pass mt8365_i2s_priv[i] or "struct mtk_afe_i2s_priv"
> instead of afe_priv which has the size of "struct mt8365_afe_private".
>
> Otherwise the KASAN complains about.
>
> [ 59.389765] BUG: KASAN: global-out-of-bounds in mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
> ...
> [ 59.394789] Call trace:
> [ 59.395167] dump_backtrace+0xa0/0x128
> [ 59.395733] show_stack+0x20/0x38
> [ 59.396238] dump_stack_lvl+0xe8/0x148
> [ 59.396806] print_report+0x37c/0x5e0
> [ 59.397358] kasan_report+0xac/0xf8
> [ 59.397885] kasan_check_range+0xe8/0x190
> [ 59.398485] asan_memcpy+0x3c/0x98
> [ 59.399022] mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
> [ 59.399928] mt8365_dai_i2s_register+0x1e8/0x2b0 [snd_soc_mt8365_pcm]
> [ 59.400893] mt8365_afe_pcm_dev_probe+0x4d0/0xdf0 [snd_soc_mt8365_pcm]
> [ 59.401873] platform_probe+0xcc/0x228
> [ 59.402442] really_probe+0x340/0x9e8
> [ 59.402992] driver_probe_device+0x16c/0x3f8
> [ 59.403638] driver_probe_device+0x64/0x1d8
> [ 59.404256] driver_attach+0x1dc/0x4c8
> [ 59.404840] bus_for_each_dev+0x100/0x190
> [ 59.405442] driver_attach+0x44/0x68
> [ 59.405980] bus_add_driver+0x23c/0x500
> [ 59.406550] driver_register+0xf8/0x3d0
> [ 59.407122] platform_driver_register+0x68/0x98
> [ 59.407810] mt8365_afe_pcm_driver_init+0x2c/0xff8 [snd_soc_mt8365_pcm]
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: mediatek: mt8365-dai-i2s: pass correct size to mt8365_dai_set_priv
commit: 6bea85979d05470e6416a2bb504a9bcd9178304c
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
Il 10/07/25 03:18, Guoqing Jiang ha scritto:
> Given mt8365_dai_set_priv allocate priv_size space to copy priv_data which
> means we should pass mt8365_i2s_priv[i] or "struct mtk_afe_i2s_priv"
> instead of afe_priv which has the size of "struct mt8365_afe_private".
>
> Otherwise the KASAN complains about.
>
> [ 59.389765] BUG: KASAN: global-out-of-bounds in mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
> ...
> [ 59.394789] Call trace:
> [ 59.395167] dump_backtrace+0xa0/0x128
> [ 59.395733] show_stack+0x20/0x38
> [ 59.396238] dump_stack_lvl+0xe8/0x148
> [ 59.396806] print_report+0x37c/0x5e0
> [ 59.397358] kasan_report+0xac/0xf8
> [ 59.397885] kasan_check_range+0xe8/0x190
> [ 59.398485] asan_memcpy+0x3c/0x98
> [ 59.399022] mt8365_dai_set_priv+0xc8/0x168 [snd_soc_mt8365_pcm]
> [ 59.399928] mt8365_dai_i2s_register+0x1e8/0x2b0 [snd_soc_mt8365_pcm]
> [ 59.400893] mt8365_afe_pcm_dev_probe+0x4d0/0xdf0 [snd_soc_mt8365_pcm]
> [ 59.401873] platform_probe+0xcc/0x228
> [ 59.402442] really_probe+0x340/0x9e8
> [ 59.402992] driver_probe_device+0x16c/0x3f8
> [ 59.403638] driver_probe_device+0x64/0x1d8
> [ 59.404256] driver_attach+0x1dc/0x4c8
> [ 59.404840] bus_for_each_dev+0x100/0x190
> [ 59.405442] driver_attach+0x44/0x68
> [ 59.405980] bus_add_driver+0x23c/0x500
> [ 59.406550] driver_register+0xf8/0x3d0
> [ 59.407122] platform_driver_register+0x68/0x98
> [ 59.407810] mt8365_afe_pcm_driver_init+0x2c/0xff8 [snd_soc_mt8365_pcm]
>
> Fixes: 402bbb13a195 ("ASoC: mediatek: mt8365: Add I2S DAI support")
> Signed-off-by: Guoqing Jiang <guoqing.jiang@canonical.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
© 2016 - 2025 Red Hat, Inc.