[alsa-devel] [PATCH 09/13] ASoC: soc-core: use devm_kzalloc() for rtd
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Tue Sep 10 04:05:57 CEST 2019
From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
Current rtd, rtd->dev, rtd->codec_dais are created by normal kzalloc(),
but we want to use devm_kzalloc() as much as possible.
Created rtd->dev is registered by device_register() at
soc_new_pcm_runtime(), and it will be freed at
soc_free_pcm_runtime() by device_unregister().
This means, if we can use devm_kzalloc(rtd->dev, xxx) for
rtd / rtd->codec_dais, all these are automatically freed
via soc_free_pcm_runtime().
This patch uses devm_kzalloc(rtd->dev, xxx) for rtd / rtd->codec_dais.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
---
sound/soc/soc-core.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 8802287..968cf5c 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -370,11 +370,8 @@ static void soc_free_pcm_runtime(struct snd_soc_pcm_runtime *rtd)
if (!rtd)
return;
- kfree(rtd->codec_dais);
- if (rtd->dev)
- device_unregister(rtd->dev); /* soc_release_rtd_dev */
list_del(&rtd->list);
- kfree(rtd);
+ device_unregister(rtd->dev); /* soc_release_rtd_dev */
}
static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
@@ -406,7 +403,7 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
/*
* for rtd
*/
- rtd = kzalloc(sizeof(struct snd_soc_pcm_runtime), GFP_KERNEL);
+ rtd = devm_kzalloc(dev, sizeof(*rtd), GFP_KERNEL);
if (!rtd)
goto free_rtd;
@@ -416,7 +413,7 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
/*
* for rtd->codec_dais
*/
- rtd->codec_dais = kcalloc(dai_link->num_codecs,
+ rtd->codec_dais = devm_kcalloc(dev, dai_link->num_codecs,
sizeof(struct snd_soc_dai *),
GFP_KERNEL);
if (!rtd->codec_dais)
--
2.7.4
More information about the Alsa-devel
mailing list