Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
alsa.6583
0015-pcm-direct-Fix-deadlock-in-poll_descriptor...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0015-pcm-direct-Fix-deadlock-in-poll_descriptors.patch of Package alsa.6583
From 24e63b75275e9c923c336b8dba3919b980e8f234 Mon Sep 17 00:00:00 2001 From: Takashi Iwai <tiwai@suse.de> Date: Mon, 16 Jan 2017 16:21:52 +0100 Subject: [PATCH 15/43] pcm: direct: Fix deadlock in poll_descriptors The recent change in PCM direct plugins to check XRUN in poll_descriptors callback caused a regression; as consequence, the whole playback hangs up. The culprit is a mutex dead lock by the call in snd_pcm_state() inside the new snd_pcm_direct_poll_descriptors(). The poll_descriptors code path is protected with pcm mutex, thus an unlocked version (__snd_pcm_state()) has to be used inside the callback instead. Fixes: 789ee39727a1 ("pcm: direct: check state before enter poll on timer") Signed-off-by: Takashi Iwai <tiwai@suse.de> --- src/pcm/pcm_direct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -676,7 +676,8 @@ int snd_pcm_direct_poll_descriptors(snd_ } /* this will also evaluate slave state and enter xrun if necessary */ - switch (snd_pcm_state(pcm)) { + /* using __snd_pcm_state() since this function is called inside lock */ + switch (__snd_pcm_state(pcm)) { case SND_PCM_STATE_XRUN: return -EPIPE; default:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor