| From f388cdcdd160687c6650833f286b9c89c50960ff Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Fri, 8 Jul 2016 08:05:19 +0200 |
| Subject: ALSA: ctl: Stop notification after disconnection |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/core/control.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/sound/core/control.c |
| +++ b/sound/core/control.c |
| @@ -160,6 +160,8 @@ void snd_ctl_notify(struct snd_card *car |
| |
| 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++; |