[alsa-devel] [PATCH] ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery

Clemens Ladisch clemens at ladisch.de
Sat Dec 6 20:54:48 CET 2014


Takashi Iwai wrote:
> In snd_usbmidi_error_timer(), the driver tries to resubmit MIDI input
> URBs to reactivate the MIDI stream, but this causes the error when
> some of URBs are still pending

I wonder what kept the other URBs alive.

> For avoiding these errors, check the pending URBs and skip
> resubmitting such ones.
>
> Reported-and-tested-by: Stefan Seyfried <stefan.seyfried at googlemail.com>
> Cc: <stable at vger.kernel.org>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>

Anyway,
Acked-by: Clemens Ladisch <clemens at ladisch.de>

> ---
>  sound/usb/midi.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/sound/usb/midi.c b/sound/usb/midi.c
> index d3d49525a16b..5bfb695547f8 100644
> --- a/sound/usb/midi.c
> +++ b/sound/usb/midi.c
> @@ -365,6 +365,8 @@ static void snd_usbmidi_error_timer(unsigned long data)
>  		if (in && in->error_resubmit) {
>  			in->error_resubmit = 0;
>  			for (j = 0; j < INPUT_URBS; ++j) {
> +				if (atomic_read(&in->urbs[j]->use_count))
> +					continue;
>  				in->urbs[j]->dev = umidi->dev;
>  				snd_usbmidi_submit_urb(in->urbs[j], GFP_ATOMIC);
>  			}


More information about the Alsa-devel mailing list