瀏覽代碼

ALSA: ctl: Stop notification after disconnection

snd_ctl_remove() has a notification for the removal event.  It's
superfluous when done during the device got disconnected.  Although
the notification itself is mostly harmless, it may potentially be
harmful, and should be suppressed.  Actually some components PCM may
free ctl elements during the disconnect or free callbacks, thus it's
no theoretical issue.

This patch adds the check of card->shutdown flag for avoiding
unnecessary notifications after (or during) the disconnect.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 9 年之前
父節點
當前提交
f388cdcdd1
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      sound/core/control.c

+ 2 - 0
sound/core/control.c

@@ -160,6 +160,8 @@ void snd_ctl_notify(struct snd_card *card, unsigned int mask,
 	
 	
 	if (snd_BUG_ON(!card || !id))
 	if (snd_BUG_ON(!card || !id))
 		return;
 		return;
+	if (card->shutdown)
+		return;
 	read_lock(&card->ctl_files_rwlock);
 	read_lock(&card->ctl_files_rwlock);
 #if IS_ENABLED(CONFIG_SND_MIXER_OSS)
 #if IS_ENABLED(CONFIG_SND_MIXER_OSS)
 	card->mixer_oss_change_count++;
 	card->mixer_oss_change_count++;