stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Patch "ALSA: emux: Fix mutex deadlock at unloading" has been added to the 4.0-stable tree
@ 2015-05-09 17:24 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2015-05-09 17:24 UTC (permalink / raw)
  To: tiwai, gregkh; +Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    ALSA: emux: Fix mutex deadlock at unloading

to the 4.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     alsa-emux-fix-mutex-deadlock-at-unloading.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From 07b0e5d49d227e3950cb13a3e8caf248ef2a310e Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 27 Apr 2015 14:50:39 +0200
Subject: ALSA: emux: Fix mutex deadlock at unloading

From: Takashi Iwai <tiwai@suse.de>

commit 07b0e5d49d227e3950cb13a3e8caf248ef2a310e upstream.

The emux-synth driver has a possible AB/BA mutex deadlock at unloading
the emu10k1 driver:

  snd_emux_free() ->
    snd_emux_detach_seq(): mutex_lock(&emu->register_mutex) ->
      snd_seq_delete_kernel_client() ->
        snd_seq_free_client(): mutex_lock(&register_mutex)

  snd_seq_release() ->
    snd_seq_free_client(): mutex_lock(&register_mutex) ->
      snd_seq_delete_all_ports() ->
        snd_emux_unuse(): mutex_lock(&emu->register_mutex)

Basically snd_emux_detach_seq() doesn't need a protection of
emu->register_mutex as it's already being unregistered.  So, we can
get rid of this for avoiding the deadlock.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/synth/emux/emux_seq.c |    2 --
 1 file changed, 2 deletions(-)

--- a/sound/synth/emux/emux_seq.c
+++ b/sound/synth/emux/emux_seq.c
@@ -124,12 +124,10 @@ snd_emux_detach_seq(struct snd_emux *emu
 	if (emu->voices)
 		snd_emux_terminate_all(emu);
 		
-	mutex_lock(&emu->register_mutex);
 	if (emu->client >= 0) {
 		snd_seq_delete_kernel_client(emu->client);
 		emu->client = -1;
 	}
-	mutex_unlock(&emu->register_mutex);
 }
 
 


Patches currently in stable-queue which might be from tiwai@suse.de are

queue-4.0/alsa-emux-fix-mutex-deadlock-at-unloading.patch
queue-4.0/alsa-hda-add-mute-led-mode-control-to-thinkpad.patch
queue-4.0/alsa-emu10k1-emu10k2-32-bit-dma-mode.patch
queue-4.0/alsa-emux-fix-mutex-deadlock-in-oss-emulation.patch
queue-4.0/alsa-hda-fix-mute-led-fixed-mode.patch
queue-4.0/alsa-emu10k1-fix-card-shortname-string-buffer-overflow.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-05-09 17:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-09 17:24 Patch "ALSA: emux: Fix mutex deadlock at unloading" has been added to the 4.0-stable tree gregkh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).