linux/sound
Takashi Iwai 382225e62b ALSA: usb-audio: fix oops due to cleanup race when disconnecting
When a USB audio device is disconnected, snd_usb_audio_disconnect()
kills all audio URBs.  At the same time, the application, after being
notified of the disconnection, might close the device, in which case
ALSA calls the .hw_free callback, which should free the URBs too.

Commit de1b8b93a0 "[ALSA] Fix hang-up at disconnection of usb-audio"
prevented snd_usb_hw_free() from freeing the URBs to avoid a hang that
resulted from this race, but this introduced another race because the
URB callbacks could now be executed after snd_usb_hw_free() has
returned, and try to access already freed data.

Fix the first race by introducing a mutex to serialize the disconnect
callback and all PCM callbacks that manage URBs (hw_free and hw_params).

Reported-and-tested-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
Cc: <stable@kernel.org>
[CL: also serialize hw_params callback]
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-02-23 08:15:43 +01:00
..
aoa
arm
atmel ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture 2011-01-25 18:07:10 +01:00
core ALSA: fix one memory leak in sound jack 2011-02-21 09:33:49 +01:00
drivers ALSA: use linux/io.h to fix compile warnings 2011-02-02 17:49:53 +01:00
i2c
isa
mips
oss sound: silent echo'ed messages in Makefile 2011-01-31 11:28:53 +01:00
parisc
pci ALSA: HDA: Fix mic initialization in VIA auto parser 2011-02-22 14:02:09 +01:00
pcmcia ALSA: use linux/io.h to fix compile warnings 2011-02-02 17:49:53 +01:00
ppc Fix spelling milisec -> ms in snd_ps3 module parameter description 2011-01-03 13:54:21 +01:00
sh
soc ASoC: Improve WM8994 digital power sequencing 2011-02-03 20:17:13 +00:00
sparc
spi
synth
usb ALSA: usb-audio: fix oops due to cleanup race when disconnecting 2011-02-23 08:15:43 +01:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c
sound_firmware.c