ASoC: soc-core: protect dlc->of_node under mutex
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 29 Jun 2023 23:52:20 +0000 (23:52 +0000)
committerMark Brown <broonie@kernel.org>
Sun, 9 Jul 2023 21:50:58 +0000 (22:50 +0100)
dlc->of_node will be set on snd_soc_get_dlc(), but we want
1) protect it by mutex, 2) set only when successed.
This patch do it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/878rc1kerv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-core.c

index 7da43f22a650b02d1228d4a8ee9c9cf18a5acb09..94e856d67a46c0fa379e52f5dfaba017f21dabe1 100644 (file)
@@ -3278,8 +3278,6 @@ int snd_soc_get_dlc(const struct of_phandle_args *args, struct snd_soc_dai_link_
        struct snd_soc_component *pos;
        int ret = -EPROBE_DEFER;
 
-       dlc->of_node = args->np;
-
        mutex_lock(&client_mutex);
        for_each_component(pos) {
                struct device_node *component_of_node = soc_component_to_node(pos);
@@ -3333,6 +3331,10 @@ int snd_soc_get_dlc(const struct of_phandle_args *args, struct snd_soc_dai_link_
 
                break;
        }
+
+       if (ret == 0)
+               dlc->of_node = args->np;
+
        mutex_unlock(&client_mutex);
        return ret;
 }