linux/sound
Takashi Iwai 92a586bdc0 ALSA: usb-audio: Fix races at disconnection and PCM closing
When a USB-audio device is disconnected while PCM is still running, we
still see some race: the disconnect callback calls
snd_usb_endpoint_free() that calls release_urbs() and then kfree()
while a PCM stream would be closed at the same time and calls
stop_endpoints() that leads to wait_clear_urbs().  That is, the EP
object might be deallocated while a PCM stream is syncing with
wait_clear_urbs() with the same EP.

Basically calling multiple wait_clear_urbs() would work fine, also
calling wait_clear_urbs() and release_urbs() would work, too, as
wait_clear_urbs() just reads some fields in ep.  The problem is the
succeeding kfree() in snd_pcm_endpoint_free().

This patch moves out the EP deallocation into the later point, the
destructor callback.  At this stage, all PCMs must have been already
closed, so it's safe to free the objects.

Reported-by: Alan Stern <stern@rowland.harvard.edu>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-26 10:33:35 +02:00
..
aoa ALSA: sound/aoa/codecs/onyx.c: use static const for texts 2014-05-27 11:58:55 +02:00
arm ASoC: pxa: remove mach header dependency 2014-05-20 23:14:49 +01:00
atmel ALSA: sound/atmel/ac97c.c: Convert to module_platform_driver 2014-04-16 10:22:03 +02:00
core ALSA: control: Make sure that id->index does not overflow 2014-06-18 15:13:37 +02:00
drivers ALSA: drivers: Convert to snd_card_new() with a device pointer 2014-02-12 10:58:20 +01:00
firewire ALSA: bebob: Remove unused function prototype 2014-06-04 14:38:16 +02:00
i2c ALSA: cs8427: separate HW initialization 2014-04-03 14:59:48 +02:00
isa ALSA: gus: remove checks for CONFIG_SND_DEBUG_ROM 2014-05-30 10:12:10 +02:00
mips ALSA: au1x00: Use resource_size instead of computation 2014-05-28 17:50:57 +02:00
oss sound: remove checks for CONFIG_BCM_CS4297A_CSWARM 2014-05-30 10:11:55 +02:00
parisc ALSA: parisc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:05 +01:00
pci ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13 2014-06-25 17:50:24 +02:00
pcmcia ALSA: pcmcia: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:06 +01:00
ppc ALSA: ppc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:06 +01:00
sh ALSA: sh: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:07 +01:00
soc Merge remote-tracking branches 'asoc/fix/fsl-dma', 'asoc/fix/fsl-spdif', 'asoc/fix/pxa', 'asoc/fix/rcar' and 'asoc/fix/sigmadsp' into asoc-linus 2014-06-16 16:05:16 +01:00
sparc ALSA: sparc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:07 +01:00
spi ALSA: spi: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:08 +01:00
synth ALSA: synth: emux: soundfont.c: Cleaning up memory leak 2014-06-01 14:33:09 +02:00
usb ALSA: usb-audio: Fix races at disconnection and PCM closing 2014-06-26 10:33:35 +02:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c consolidate the reassignments of ->f_op in ->open() instances 2013-10-24 23:34:53 -04:00
sound_firmware.c