kernel-fxtec-pro1x/sound/core/seq
Takashi Iwai bbd411d70b ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
[ Upstream commit 2759caad2600d503c3b0ed800e7e03d2cd7a4c05 ]

Recently we applied a fix to cover the whole OSS sequencer ioctls with
the mutex for dealing with the possible races.  This works fine in
general, but in theory, this may lead to unexpectedly long stall if an
ioctl like SNDCTL_SEQ_SYNC is issued and an event with the far future
timestamp was queued.

For fixing such a potential stall, this patch changes the mutex lock
applied conditionally excluding such an ioctl command.  Also, change
the mutex_lock() with the interruptible version for user to allow
escaping from the big-hammer mutex.

Fixes: 80982c7e834e ("ALSA: seq: oss: Serialize ioctls")
Suggested-by: Pavel Machek <pavel@ucw.cz>
Link: https://lore.kernel.org/r/20200922083856.28572-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-29 09:55:11 +01:00
..
oss ALSA: seq: oss: Avoid mutex lock for a long-time ioctl 2020-10-29 09:55:11 +01:00
Kconfig ALSA: seq: Fix CONFIG_SND_SEQ_MIDI dependency 2017-08-11 09:51:41 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seq.c ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00
seq_clientmgr.c ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_clientmgr.h ALSA: seq: Make ioctls race-free 2018-01-11 14:37:51 +01:00
seq_compat.c ALSA: seq: fix passing wrong pointer in function call of compatibility layer 2016-10-12 20:09:36 +02:00
seq_dummy.c ALSA: seq: Drop snd_seq_autoload_lock() and _unlock() 2015-02-12 14:42:31 +01:00
seq_fifo.c ALSA: seq: Fix potential concurrent access to the deleted pool 2019-09-06 10:22:09 +02:00
seq_fifo.h ALSA: seq: Fix potential concurrent access to the deleted pool 2019-09-06 10:22:09 +02:00
seq_info.c ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00
seq_info.h ALSA: seq: Fix leftovers at probe error path 2018-08-01 22:54:36 +02:00
seq_lock.c ALSA: seq: Enable 'use' locking in all configurations 2017-10-18 08:01:46 +02:00
seq_lock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seq_memory.c ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_memory.h ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_midi.c ALSA: seq: Minor cleanup of MIDI event parser helpers 2018-08-01 22:54:35 +02:00
seq_midi_emul.c ALSA: seq: Mark expected switch fall-through 2018-08-04 08:30:36 +02:00
seq_midi_event.c ALSA: seq: Remove dead codes 2018-08-01 22:54:35 +02:00
seq_ports.c ALSA: seq: Fix race of get-subscription call vs port-delete ioctls 2019-06-19 08:18:01 +02:00
seq_ports.h ALSA: seq: Fix race of get-subscription call vs port-delete ioctls 2019-06-19 08:18:01 +02:00
seq_prioq.c ALSA: seq: Fix possible UAF in snd_seq_check_queue() 2018-03-10 17:29:49 +01:00
seq_prioq.h ALSA: seq: Fix possible UAF in snd_seq_check_queue() 2018-03-10 17:29:49 +01:00
seq_queue.c ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_queue.h ALSA: seq: Drop unused 64bit division macros 2018-08-01 22:54:37 +02:00
seq_system.c ALSA: seq: Do error checks at creating system ports 2019-11-20 18:45:27 +01:00
seq_system.h
seq_timer.c ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_timer.h ALSA: seq: Fix concurrent access to queue current tick/time 2020-02-28 16:39:00 +01:00
seq_virmidi.c ALSA: seq: virmidi: Fix running status after receiving sysex 2020-03-25 08:06:09 +01:00