aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/pcm.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2022-07-28 14:59:44 +0200
committerTakashi Iwai <tiwai@suse.de>2022-07-29 12:57:11 +0200
commit96b097091c66df4f6fbf5cbff21df6cc02a2f055 (patch)
tree71623428159e0aeb4141102c3d0b7b53d47bfbf0 /sound/core/pcm.c
parentALSA: timer: Use deferred fasync helper (diff)
downloadlinux-dev-96b097091c66df4f6fbf5cbff21df6cc02a2f055.tar.xz
linux-dev-96b097091c66df4f6fbf5cbff21df6cc02a2f055.zip
ALSA: pcm: Use deferred fasync helper
For avoiding the potential deadlock via kill_fasync() call, use the new fasync helpers to defer the invocation from timer API. Note that it's merely a workaround. Reported-by: syzbot+8285e973a41b5aa68902@syzkaller.appspotmail.com Reported-by: syzbot+669c9abf11a6a011dd09@syzkaller.appspotmail.com Link: https://lore.kernel.org/r/20220728125945.29533-4-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/pcm.c')
-rw-r--r--sound/core/pcm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 03fc5fa5813e..2ac742035310 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -1007,6 +1007,7 @@ void snd_pcm_detach_substream(struct snd_pcm_substream *substream)
substream->runtime = NULL;
}
mutex_destroy(&runtime->buffer_mutex);
+ snd_fasync_free(runtime->fasync);
kfree(runtime);
put_pid(substream->pid);
substream->pid = NULL;