linux/sound/drivers
Takashi Iwai 67a01afaf3 ALSA: aloop: Sync stale timer before release
The aloop driver tries to stop the pending timer via timer_del() in
the trigger callback and in the close callback.  The former is
correct, as it's an atomic operation, while the latter expects that
the timer gets really removed and proceeds the resource releases after
that.  But timer_del() doesn't synchronize, hence the running timer
may still access the released resources.

A similar situation can be also seen in the prepare callback after
trigger(STOP) where the prepare tries to re-initialize the things
while a timer is still running.

The problems like the above are seen indirectly in some syzkaller
reports (although it's not 100% clear whether this is the only cause,
as the race condition is quite narrow and not always easy to
trigger).

For addressing these issues, this patch adds the explicit alls of
timer_del_sync() in some places, so that the pending timer is properly
killed / synced.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2018-03-22 10:34:12 +01:00
..
mpu401 ALSA: drivers: Convert timers to use timer_setup() 2017-10-24 21:01:16 +02:00
opl3 ASoC: Updates for v4.15 2017-11-13 15:45:57 +01:00
opl4 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pcsp License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vx ALSA: vx: Put missing KERN_CONT prefix 2017-08-31 11:01:17 +02:00
aloop.c ALSA: aloop: Sync stale timer before release 2018-03-22 10:34:12 +01:00
dummy.c Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-29 16:50:58 -08:00
Kconfig ALSA: seq: Allow the modular sequencer registration 2017-06-12 08:43:33 +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
ml403-ac97cr.c ALSA: drivers: constify snd_pcm_ops structures 2017-08-19 11:02:15 +02:00
mtpav.c ALSA: drivers: Convert timers to use timer_setup() 2017-10-24 21:01:16 +02:00
mts64.c ALSA: drivers: Constify snd_rawmidi_ops 2017-01-12 12:50:06 +01:00
pcm-indirect2.c treewide: Fix typos in printk 2015-12-08 14:59:19 +01:00
pcm-indirect2.h
portman2x4.c ALSA: drivers: Constify snd_rawmidi_ops 2017-01-12 12:50:06 +01:00
serial-u16550.c ALSA: drivers: Convert timers to use timer_setup() 2017-10-24 21:01:16 +02:00
virmidi.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00