Re: [alsa-devel] [PATCH 2/3] sound: dummy, use del_timer_sync
At Mon, 19 Jan 2015 10:42:55 +0100, Jiri Slaby wrote:
Wait for the timer to really quit, not only by ensuring it is not in the critical section.
BTW the spin_lock in here does not disable BH, so that it could deadlock.
The stop function is called from the PCM trigger callback which is irq-disabled. So, you can't use del_timer_sync() here.
thanks,
Takashi
Signed-off-by: Jiri Slaby jslaby@suse.cz Cc: Jaroslav Kysela perex@perex.cz Cc: Takashi Iwai tiwai@suse.de Cc: alsa-devel@alsa-project.org
sound/drivers/dummy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c index d11baaf0f0b4..6d6bf4093583 100644 --- a/sound/drivers/dummy.c +++ b/sound/drivers/dummy.c @@ -281,9 +281,9 @@ static int dummy_systimer_start(struct snd_pcm_substream *substream) static int dummy_systimer_stop(struct snd_pcm_substream *substream) { struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
- spin_lock(&dpcm->lock);
- del_timer(&dpcm->timer);
- spin_unlock(&dpcm->lock);
- del_timer_sync(&dpcm->timer);
- return 0;
}
-- 2.2.1
On 01/19/2015, 10:52 AM, Takashi Iwai wrote:
At Mon, 19 Jan 2015 10:42:55 +0100, Jiri Slaby wrote:
Wait for the timer to really quit, not only by ensuring it is not in the critical section.
BTW the spin_lock in here does not disable BH, so that it could deadlock.
The stop function is called from the PCM trigger callback which is irq-disabled. So, you can't use del_timer_sync() here.
The same as 3/3 I was looking at compr* :(. Ignore this one, then.
thanks,
participants (2)
-
Jiri Slaby
-
Takashi Iwai