diff --git a/[refs] b/[refs] index 93d1f505ad9e..730e31407e73 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9624ea812c7afd2e403c56366cadddb9ecfb88c6 +refs/heads/master: daa150ef7d437d17973210f47a1c58623415df94 diff --git a/trunk/sound/usb/usbaudio.c b/trunk/sound/usb/usbaudio.c index 3f7930c0b616..8d4a085f642a 100644 --- a/trunk/sound/usb/usbaudio.c +++ b/trunk/sound/usb/usbaudio.c @@ -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; }