diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-09-08 08:27:02 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-09-20 13:36:27 -0700 |
commit | e45ef8fb8d9e08be9997f2c530ce83237351373f (patch) | |
tree | ba23dd3fe45fd30f28ad79ca82e306c207579bca /sound/usb | |
parent | 7ab99e2ebb57576e1e853e9de18f242558196f6f (diff) |
ALSA: usb - Release capture substream URBs properly
commit 76195fb096ca6db2f8bbaffb96e3025aaf1649a0 upstream.
Due to the wrong "return" in the loop, a capture substream won't be
released at disconnection properly if the device is capture only and has
no playback substream. This caused Oops occasionally at the device
reconnection.
Reported-by: Kim Minhyoung <minhyoung.kim@lge.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/card.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c index 745bd782faa..d1924d71681 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -126,7 +126,7 @@ static void snd_usb_stream_disconnect(struct list_head *head) for (idx = 0; idx < 2; idx++) { subs = &as->substream[idx]; if (!subs->num_formats) - return; + continue; snd_usb_release_substream_urbs(subs, 1); subs->interface = -1; } |