From: jempty.liang Date: Wed, 19 Nov 2025 10:11:16 +0000 (+0000) Subject: ASoC: soc-core: Pre-check zero CPU/codec DAIs, handle early rtd->dais alloc failure X-Git-Tag: v6.19-rc1~156^2~3^2~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e2c48498a93404743e0565dcac29450fec02e6a3;p=thirdparty%2Fkernel%2Flinux.git ASoC: soc-core: Pre-check zero CPU/codec DAIs, handle early rtd->dais alloc failure This commit adds a pre-check in ASoC to ensure there are non-zero CPU or codec DAIs. It also handles early failure of memory allocation for rtd->dais by going to the cleanup path, preventing potential issues from invalid configurations or out-of-memory situations. Signed-off-by: jempty.liang Link: https://patch.msgid.link/20251119101116.78676-1-imntjempty@163.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 4297cc27005c1..e4b21bf39e59f 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -545,6 +545,11 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime( dev_set_drvdata(dev, rtd); INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work); + if ((dai_link->num_cpus + dai_link->num_codecs) == 0) { + dev_err(dev, "ASoC: it has no CPU or codec DAIs\n"); + goto free_rtd; + } + /* * for rtd->dais */