ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double()
Commit62d5ae4caf
("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:62d5ae4caf
("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>
This commit is contained in:
parent
839284e794
commit
294b7380ff
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user