Commit 5471e976 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

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

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>
parent 06764dc9
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -810,7 +810,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;
	}
}