OSDN Git Service

ALSA: timer: Revert active callback sync check at close
authorTakashi Iwai <tiwai@suse.de>
Tue, 9 Apr 2019 10:25:32 +0000 (12:25 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 9 Apr 2019 10:29:34 +0000 (12:29 +0200)
commitdf55531b8b0eea9d2473f5697ae4f38d0df6bec7
treea6fac1cad0346f2f2bec14c8e9682221070e856e
parent4b81dad109ad7d7b288804fcdc6475b48f242210
ALSA: timer: Revert active callback sync check at close

This is essentially a revert of the commit a7588c896b05 ("ALSA: timer:
Check ack_list emptiness instead of bit flag").  The intended change
by the commit turns out to be insufficient, as snd_timer_close*()
always calls snd_timer_stop() that deletes the ack_list beforehand.

In theory, we can change the behavior of snd_timer_stop() to sync the
pending ack_list, but this will become a deadlock for the callback
like sequencer that calls again snd_timer_stop() from itself.  So,
reverting the change is a more straightforward solution.

Fixes: a7588c896b05 ("ALSA: timer: Check ack_list emptiness instead of bit flag")
Reported-by: syzbot+58813d77154713f4de15@syzkaller.appspotmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/timer.h
sound/core/timer.c