Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce730475 authored by Takashi Iwai's avatar Takashi Iwai Committed by Greg Kroah-Hartman
Browse files

ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls

[ Upstream commit 5471e9762e1af4b7df057a96bfd46cc250979b88 ]

snd_ctl_remove() has to be called with card->controls_rwsem held (when
called after the card instantiation).  This patch add the missing
rwsem calls around it.

Fixes: a8ff48cb ("ALSA: pcm: Free chmap at PCM free callback, too")
Link: https://lore.kernel.org/r/20211116071314.15065-2-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent eb57c696
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -857,7 +857,11 @@ EXPORT_SYMBOL(snd_pcm_new_internal);
static void free_chmap(struct snd_pcm_str *pstr)
{
	if (pstr->chmap_kctl) {
		snd_ctl_remove(pstr->pcm->card, pstr->chmap_kctl);
		struct snd_card *card = pstr->pcm->card;

		down_write(&card->controls_rwsem);
		snd_ctl_remove(card, pstr->chmap_kctl);
		up_write(&card->controls_rwsem);
		pstr->chmap_kctl = NULL;
	}
}