[alsa-devel] [PATCH 1/1] ASoC: Serialize access to dapm_power_widgets()

ext-eero.nurkkala at nokia.com ext-eero.nurkkala at nokia.com
Mon Oct 12 07:41:59 CEST 2009

From: Eero Nurkkala <ext-eero.nurkkala at nokia.com>

Access to damp_power_widgets() is assumed to be single-threaded.
Concurrent accesses to dapm_power_widgets() may result in 
unpredictable behavior.

Calls from:
to snd_soc_dapm_stream_event() do not have the codec->mutex
taken to cover the call to dapm_power_widgets(). Thus, take
the mutex in these paths also to assure single-threaded use
of dapm_power_widgets().

Signed-off-by: Eero Nurkkala <ext-eero.nurkkala at nokia.com>
 sound/soc/soc-dapm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index f79711b..e2344f9 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -2071,9 +2071,9 @@ int snd_soc_dapm_stream_event(struct snd_soc_codec *codec,
-	mutex_unlock(&codec->mutex);
 	dapm_power_widgets(codec, event);
+	mutex_unlock(&codec->mutex);
 	dump_dapm(codec, __func__);
 	return 0;

More information about the Alsa-devel mailing list