ASoC: soc-core.c: Skip dummy codec when adding platforms
authorChancel Liu <chancel.liu@nxp.com>
Tue, 5 Mar 2024 06:56:06 +0000 (15:56 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Apr 2024 11:01:46 +0000 (13:01 +0200)
[ Upstream commit 23fb6bc2696119391ec3a92ccaffe50e567c515e ]

When pcm_runtime is adding platform components it will scan all
registered components. In case of DPCM FE/BE some DAI links will
configure dummy platform. However both dummy codec and dummy platform
are using "snd-soc-dummy" as component->name. Dummy codec should be
skipped when adding platforms otherwise there'll be overflow and UBSAN
complains.

Reported-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
Link: https://msgid.link/r/20240305065606.3778642-1-chancel.liu@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/soc-core.c

index a5b3ee69fb8867cee5286da12bf87e0d5b4ee8e2..1c4d8b96f77b1eb51721a7fbaa7f91c9a80cd561 100644 (file)
@@ -1042,6 +1042,9 @@ int snd_soc_add_pcm_runtime(struct snd_soc_card *card,
                        if (!snd_soc_is_matching_component(platform, component))
                                continue;
 
+                       if (snd_soc_component_is_dummy(component) && component->num_dai)
+                               continue;
+
                        snd_soc_rtd_add_component(rtd, component);
                }
        }