linux/sound
Daniel Mack da6094ea7d ALSA: snd_usb_caiaq: track submitted output urbs
The snd_usb_caiaq driver currently assumes that output urbs are serviced
in time and doesn't track when and whether they are given back by the
USB core. That usually works fine, but due to temporary limitations of
the XHCI stack, we faced that urbs were submitted more than once with
this approach.

As it's no good practice to fire and forget urbs anyway, this patch
introduces a proper bit mask to track which requests have been submitted
and given back.

That alone however doesn't make the driver work in case the host
controller is broken and doesn't give back urbs at all, and the output
stream will stop once all pre-allocated output urbs are consumed. But
it does prevent crashes of the controller stack in such cases.

See http://bugzilla.kernel.org/show_bug.cgi?id=40702 for more details.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Matej Laitl <matej@laitl.cz>
Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-14 18:10:43 +02:00
..
aoa treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
arm Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39 2011-04-03 19:28:29 +09:00
atmel Merge branch 'master' into for-next 2011-07-11 14:15:55 +02:00
core Merge branch 'fix/kconfig' into for-linus 2011-08-08 14:30:29 +02:00
drivers i8253: Make pcsp sound driver use the shared i8253_lock 2011-06-09 15:01:39 +02:00
firewire Merge branch 'fix/hda' into topic/misc 2011-06-17 14:54:47 +02:00
i2c [media] tea575x: remove useless input ioctls 2011-07-27 17:53:08 -03:00
isa snd_msnd ->mode is fmode_t, not mode_t 2011-07-26 12:59:29 -04:00
mips
oss sound: pss - don't use the deprecated function check_region 2011-08-08 14:29:36 +02:00
parisc
pci ALSA: azt3328 - adjust error handling code to include debugging code 2011-08-10 11:52:23 +02:00
pcmcia ALSA: pcmcia - Use pcmcia_request_irq() 2011-07-08 10:11:35 +02:00
ppc treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
sh
soc ASoC: Fix compile warning in wm8750.c 2011-08-12 18:22:10 +02:00
sparc atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
spi ALSA: atmel - update author email for ABDAC, AC97C and AT73C213 2011-06-28 16:56:07 +02:00
synth
usb ALSA: snd_usb_caiaq: track submitted output urbs 2011-08-14 18:10:43 +02:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
Kconfig ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
last.c
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
sound_core.c sound: Use sound_register_*() for additional OSS minor devices 2011-03-09 20:10:37 +01:00
sound_firmware.c sound: read i_size with i_size_read() 2011-03-18 15:14:57 +01:00