summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-12-28 12:24:22 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-04-01 15:55:31 -0700
commitef90f00fb08ab96a273cb6c078bf1c6e75856375 (patch)
tree6ea6b94b45c9628f70cb56384bac98fc22393a1e /sound
parent53fc82f62490a22d0bc547ab3191710ea10d9482 (diff)
downloadlwn-ef90f00fb08ab96a273cb6c078bf1c6e75856375.tar.gz
lwn-ef90f00fb08ab96a273cb6c078bf1c6e75856375.zip
ALSA: usb-audio - Avoid Oops after disconnect
commit 78b8d5d2ee280c463908fd75f3bdf246bcb6ac8d upstream. As the release of substreams may be done asynchronously from the disconnection, close callback needs to check the shutdown flag before actually accessing the usb interface. Reference: Novell bnc#505027 http://bugzilla.novell.com/show_bug.cgi?id=565027 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/usb/usbaudio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index b70527a92b01..8da53c56c4d2 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -1934,7 +1934,7 @@ static int snd_usb_pcm_close(struct snd_pcm_substream *substream, int direction)
struct snd_usb_stream *as = snd_pcm_substream_chip(substream);
struct snd_usb_substream *subs = &as->substream[direction];
- if (subs->interface >= 0) {
+ if (!as->chip->shutdown && subs->interface >= 0) {
usb_set_interface(subs->dev, subs->interface, 0);
subs->interface = -1;
}