summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-07-08 08:05:19 +0200
committerBen Hutchings <ben@decadent.org.uk>2016-11-20 01:16:47 +0000
commita2bc69331e8a674bb15308fb442b8aaf367d4bdd (patch)
tree694b6bbdf54f2c96e6b34f6ba6903308d662823e /sound
parentbe54a719d7a4e8b7a88446ac30f440bddc25a6f0 (diff)
downloadlinux-stable-a2bc69331e8a674bb15308fb442b8aaf367d4bdd.tar.gz
linux-stable-a2bc69331e8a674bb15308fb442b8aaf367d4bdd.tar.bz2
linux-stable-a2bc69331e8a674bb15308fb442b8aaf367d4bdd.zip
ALSA: ctl: Stop notification after disconnection
commit f388cdcdd160687c6650833f286b9c89c50960ff upstream. 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. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'sound')
-rw-r--r--sound/core/control.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/core/control.c b/sound/core/control.c
index 1d395d865f1b..665020b7c82e 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -150,6 +150,8 @@ void snd_ctl_notify(struct snd_card *card, unsigned int mask,
if (snd_BUG_ON(!card || !id))
return;
+ if (card->shutdown)
+ return;
read_lock(&card->ctl_files_rwlock);
#if IS_ENABLED(CONFIG_SND_MIXER_OSS)
card->mixer_oss_change_count++;