]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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:10:10 +0000 (13:10 +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 516350533e73f8ee1084164e44068f825eb7fafe..8b5b583a2bad031d6a5500ba0bc02a1fb73c0a37 100644 (file)
@@ -1218,6 +1218,9 @@ static 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);
                }
        }