]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ALSA: seq-dummy: remove deadlock-causing events on close
authorClemens Ladisch <clemens@ladisch.de>
Sun, 25 Jan 2015 13:34:29 +0000 (14:34 +0100)
committerJiri Slaby <jslaby@suse.cz>
Sun, 8 Feb 2015 19:01:55 +0000 (20:01 +0100)
commit8b61ee53d39bddab0900485fdca2f0e644f7ccaf
treeafa2bf6cbbdbcf749d6b1787001cbe5962776a8b
parentb294d7b152e5580fdc6be48292cb365b6d1a0bbc
ALSA: seq-dummy: remove deadlock-causing events on close

commit 0767e95bb96d7fdddcd590fb809e6975d93aebc5 upstream.

When the last subscriber to a "Through" port has been removed, the
subscribed destination ports might still be active, so it would be
wrong to send "all sounds off" and "reset controller" events to them.
The proper place for such a shutdown would be the closing of the actual
MIDI port (and close_substream() in rawmidi.c already can do this).

This also fixes a deadlock when dummy_unuse() tries to send events to
its own port that is already locked because it is being freed.

Reported-by: Peter Billam <peter@www.pjb.com.au>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
sound/core/seq/seq_dummy.c