summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/max98090.c
diff options
context:
space:
mode:
authorTzung-Bi Shih <tzungbi@google.com>2020-01-17 10:38:14 +0300
committerMark Brown <broonie@kernel.org>2020-01-21 20:15:20 +0300
commit294b7380ffe88d4a0626af1fee5843a3db0c913c (patch)
treef33cf004b4f10524b397995d0e38bdab0b0ef4e7 /sound/soc/codecs/max98090.c
parent839284e794822ebc8b66f32006a5d4cad863e1fb (diff)
downloadlinux-294b7380ffe88d4a0626af1fee5843a3db0c913c.tar.xz
ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double()
Commit 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when changing sensitive registers SHDN bit") uses dapm_mutex to protect SHDN bit. However, snd_soc_dapm_put_enum_double() in max98090_dapm_put_enum_double() acquires the dapm_mutex again which cause a deadlock. Use snd_soc_dapm_put_enum_double_locked() instead to fix the deadlock. Fixes: 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when changing sensitive registers SHDN bit") Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Link: https://lore.kernel.org/r/20200117073814.82441-4-tzungbi@google.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/max98090.c')
-rw-r--r--sound/soc/codecs/max98090.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index c01ce4a3f86d..0313e1183167 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -88,7 +88,7 @@ static int max98090_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
int ret;
max98090_shdn_save(max98090);
- ret = snd_soc_dapm_put_enum_double(kcontrol, ucontrol);
+ ret = snd_soc_dapm_put_enum_double_locked(kcontrol, ucontrol);
max98090_shdn_restore(max98090);
return ret;