ASoC: soc-pcm: don't call flush_delayed_work() many times in soc_pcm_private_free()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 24 Jan 2018 05:18:46 +0000 (05:18 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 24 Jan 2018 10:30:20 +0000 (10:30 +0000)
commit f523acebbb74 ("ASoC: add Component level pcm_new/pcm_free v2")
added component level pcm_new/pcm_free, but flush_delayed_work()
on soc_pcm_private_free() is called in for_each_rtdcom() loop.
It doesn't need to be called many times.
This patch moves it out of loop.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-pcm.c

index 8075856668c23b10e0f16eebb78cb59b8c7a233a..998800cc44ef9ad39aa9e6ca8a01584daa5228e6 100644 (file)
@@ -2831,10 +2831,9 @@ static void soc_pcm_private_free(struct snd_pcm *pcm)
        struct snd_soc_rtdcom_list *rtdcom;
        struct snd_soc_component *component;
 
+       /* need to sync the delayed work before releasing resources */
+       flush_delayed_work(&rtd->delayed_work);
        for_each_rtdcom(rtd, rtdcom) {
-               /* need to sync the delayed work before releasing resources */
-
-               flush_delayed_work(&rtd->delayed_work);
                component = rtdcom->component;
 
                if (component->pcm_free)