linux/sound/usb
Takashi Iwai 978520b75f ALSA: usb-audio: Fix races at disconnection
Close some races at disconnection of a USB audio device by adding the
chip->shutdown_mutex and chip->shutdown check at appropriate places.

The spots to put bandaids are:
- PCM prepare, hw_params and hw_free
- where the usb device is accessed for communication or get speed, in
 mixer.c and others; the device speed is now cached in subs->speed
 instead of accessing to chip->dev

The accesses in PCM open and close don't need the mutex protection
because these are already handled in the core PCM disconnection code.

The autosuspend/autoresume codes are still uncovered by this patch
because of possible mutex deadlocks.  They'll be covered by the
upcoming change to rwsem.

Also the mixer codes are untouched, too.  These will be fixed in
another patch, too.

Reported-by: Matthieu CASTET <matthieu.castet@parrot.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30 11:06:54 +01:00
..
6fire ALSA: print small buffers via %*ph[C] 2012-08-06 11:09:50 +02:00
caiaq ALSA: snd-usb-caiaq: initialize card pointer 2012-06-27 12:26:19 +02:00
misc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
usx2y mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
Kconfig ALSA: snd-usb-6fire: Select missing SND_VMASTER option in Kconfig 2012-02-25 11:07:19 +01:00
Makefile ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
card.c ALSA: usb-audio: Avoid unnecessary EP setups in prepare 2012-09-19 08:08:16 +02:00
card.h ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
clock.c ALSA: snd-usb: fix clock source validity index 2012-08-01 10:24:16 +02:00
clock.h ALSA: usb-audio: simplify control interface access 2010-06-23 16:10:23 +02:00
debug.h ALSA: usb-audio: make hwc_debug a noop in case HW_CONST_DEBUG is not set 2011-05-18 11:44:35 +02:00
endpoint.c Sound updates for 3.7-rc1 2012-10-09 07:07:14 +09:00
endpoint.h ALSA: usb-audio: Don't require hw_params in endpoint. 2012-09-19 08:07:52 +02:00
format.c ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk() 2012-02-15 14:58:15 +01:00
format.h ALSA: usb-audio: parse more format descriptors with structs 2010-05-27 09:48:31 +02:00
helper.c ALSA: snd-usb: Add quirks for Playback Designs devices 2012-09-04 11:31:14 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
midi.c sound: Add module.h to the previously silent sound users 2011-10-31 19:31:21 -04:00
midi.h ALSA: usb-audio: add support for Akai MPD16 2010-05-21 17:12:30 +02:00
mixer.c ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
mixer.h ALSA: usb-audio: Rename and export mixer_vol_tlv 2012-04-24 08:01:27 +02:00
mixer_maps.c ALSA: snd_usb_audio: ignore ctrl errors on QuickCam Pro for Notebooks 2012-06-20 08:29:08 +02:00
mixer_quirks.c ALSA: usb-audio: Convert table to preferred C99 format 2012-06-11 12:49:56 +02:00
mixer_quirks.h ALSA: usb-mixer: factor out quirks 2010-03-12 12:20:26 +01:00
pcm.c ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
pcm.h ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
power.h ALSA: usbaudio: implement USB autosuspend 2011-03-11 14:59:29 +01:00
proc.c ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
proc.h ALSA: usb-audio: refactor code 2010-03-05 08:17:14 +01:00
quirks-table.h ALSA: usb-audio: Add TASCAM US122 MKII playback 2012-10-08 15:16:33 +02:00
quirks.c ALSA: snd-usb: Add quirks for Playback Designs devices 2012-09-04 11:31:14 +02:00
quirks.h ALSA: snd-usb: Add quirks for Playback Designs devices 2012-09-04 11:31:14 +02:00
stream.c ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
stream.h ALSA: snd-usb: re-order code 2011-09-14 17:07:02 +02:00
usbaudio.h ALSA: snd-usb: implement new endpoint streaming model 2012-04-13 10:23:42 +02:00