linux-hardened/sound
Takashi Iwai 1c94e65c66 ALSA: emux: Fix mutex deadlock in OSS emulation
The OSS emulation in synth-emux helper has a potential AB/BA deadlock
at the simultaneous closing and opening:

  close ->
    snd_seq_release() ->
      sne_seq_free_client() ->
        snd_seq_delete_all_ports(): takes client->ports_mutex ->
	  port_delete() ->
	    snd_emux_unuse(): takes emux->register_mutex

  open ->
    snd_seq_oss_open() ->
      snd_emux_open_seq_oss(): takes emux->register_mutex ->
        snd_seq_event_port_attach() ->
	  snd_seq_create_port(): takes client->ports_mutex

This patch addresses the deadlock by reducing the rance taking
emux->register_mutex in snd_emux_open_seq_oss().  The lock is needed
for the refcount handling, so move it locally.  The calls in
emux_seq.c are already with the mutex, thus they are replaced with the
version without mutex lock/unlock.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2015-04-28 17:45:45 +02:00
..
aoa ALSA: aoa: constify of_device_id array 2015-03-19 12:11:13 +01:00
arm ALSA: Deletion of checks before the function call "iounmap" 2015-01-04 15:13:45 +01:00
atmel ALSA: sound/atmel/ac97c.c: Add device tree support 2015-01-07 07:56:19 +01:00
core sound updates for 4.1-rc1 2015-04-15 15:41:41 -07:00
drivers Merge branch 'for-linus' into for-next 2015-03-09 08:42:00 +01:00
firewire Merge branch 'for-next' into for-linus 2015-04-13 10:23:18 +02:00
hda ALSA: hda - set GET bit when adding a vendor verb to the codec regmap 2015-04-14 07:25:42 +02:00
i2c ALSA: ak411x: simplify snd_ak4113_create() a bit 2015-03-23 13:58:59 +01:00
isa sound: Deparenthesize negative error returns 2015-03-24 11:41:37 +01:00
mips ALSA: au1x00: fix error return code 2015-04-05 18:04:27 +02:00
oss sound/oss: fix deadlock in sequencer_ioctl(SNDCTL_SEQ_OUTOFBAND) 2015-04-18 09:05:55 +02:00
parisc ALSA: Include linux/io.h instead of asm/io.h 2015-01-28 16:49:33 +01:00
pci ALSA: hda - Fix missing va_end() call in snd_hda_codec_pcm_new() 2015-04-27 16:39:19 +02:00
pcmcia
ppc powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
sh ALSA: Include linux/io.h instead of asm/io.h 2015-01-28 16:49:33 +01:00
soc Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
sparc ALSA: Include linux/io.h instead of asm/io.h 2015-01-28 16:49:33 +01:00
spi
synth ALSA: emux: Fix mutex deadlock in OSS emulation 2015-04-28 17:45:45 +02:00
usb ALSA: usb-audio: Fix audio output on Roland SC-D70 sound module 2015-04-21 07:59:10 +02:00
ac97_bus.c
Kconfig ALSA: hda - Make snd_hda_bus_type public 2015-03-23 13:15:51 +01:00
last.c
Makefile ALSA: hda - Make snd_hda_bus_type public 2015-03-23 13:15:51 +01:00
sound_core.c
sound_firmware.c