提交 daa150ef 编写于 作者: C Clemens Ladisch 提交者: Jaroslav Kysela

[ALSA] usb-audio: properly lock hwptr_done accesses

USB generic driver
Take the substream lock when reading hwptr_done to avoid a race
condition with the updates in the URB callbacks.
Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
上级 9624ea81
......@@ -815,8 +815,14 @@ static int wait_clear_urbs(snd_usb_substream_t *subs)
*/
static snd_pcm_uframes_t snd_usb_pcm_pointer(snd_pcm_substream_t *substream)
{
snd_usb_substream_t *subs = (snd_usb_substream_t *)substream->runtime->private_data;
return subs->hwptr_done;
snd_usb_substream_t *subs;
snd_pcm_uframes_t hwptr_done;
subs = (snd_usb_substream_t *)substream->runtime->private_data;
spin_lock(&subs->lock);
hwptr_done = subs->hwptr_done;
spin_unlock(&subs->lock);
return hwptr_done;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册