Re: [PATCH v2 1/2] ALSA: usb-audio: Fix irq/process data synchronization

From: Ioan-Adrian Ratiu
Date: Wed Jan 04 2017 - 04:16:46 EST


On Wed, 04 Jan 2017, Takashi Iwai <tiwai@xxxxxxx> wrote:
> On Mon, 02 Jan 2017 16:50:30 +0100,
> Ioan-Adrian Ratiu wrote:
>>
>> --- a/sound/usb/pcm.c
>> +++ b/sound/usb/pcm.c
> (snip)
>> @@ -850,7 +850,7 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
>> /* for playback, submit the URBs now; otherwise, the first hwptr_done
>> * updates for all URBs would happen at the same time when starting */
>> if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK)
>> - ret = start_endpoints(subs, true);
>> + return start_endpoints(subs);
>
> Here you miss the unlock below.
>
>>
>> unlock:
>> snd_usb_unlock_shutdown(subs->stream->chip);
>
> ... and this must be the reason of the hang up at disconnection, where
> the driver ways forever at wait_event() in usb_audio_disconnect().
>
> Could you fix this and resubmit v3? Other than that, it looks OK.

Sure, I'll resubmit v3 by tonight hopefully.

Thank you for taking a look at this, I didn't have a chance to look it
again since I posted v2.

Ionel

>
>
> thanks,
>
> Takashi