[alsa-devel] [RFC PATCH] ALSA: usb - fix race in creation of M-Audio Fast track pro driver

Takashi Iwai tiwai at suse.de
Mon Jan 14 11:58:58 CET 2013


At Mon, 14 Jan 2013 08:21:56 +0100,
David Henningsson wrote:
> 
> 
> On 01/04/2013 05:02 PM, David Henningsson wrote:
> > A patch in the 3.2 kernel caused regression with hotplugging the
> > M-Audio Fast track pro, or sound after suspend. I don't have the
> > device so I haven't done a full analysis, but it seems userspace
> > (both udev and pulseaudio) got confused when a card was created,
> > immediately destroyed, and then created again.
> 
> Since there were no counter proposal patches and the below code actually 
> fixes a problem for users, would you mind committing it?

OK, applied now.


Takashi

> 
> 
> 
> >
> > However, at least one person in the bug report (martin djfun)
> > reports that this patch resolves the issue for him. It also leaves
> > a message in the log:
> > "snd-usb-audio: probe of 1-1.1:1.1 failed with error -5" which is
> > a bit misleading. It is better than non-working audio, but maybe
> > there's a more elegant solution?
> >
> > BugLink: https://bugs.launchpad.net/bugs/1095315
> > Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> > ---
> >   sound/usb/quirks.c |    8 +++++---
> >   1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > ...oh, and if you end up taking this patch as it is, you should probably
> > add cc to stable (3.2+).
> >
> > diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> > index acc12f0..e71fc8b 100644
> > --- a/sound/usb/quirks.c
> > +++ b/sound/usb/quirks.c
> > @@ -387,11 +387,13 @@ static int snd_usb_fasttrackpro_boot_quirk(struct usb_device *dev)
> >   		 * rules
> >   		 */
> >   		err = usb_driver_set_configuration(dev, 2);
> > -		if (err < 0) {
> > +		if (err < 0)
> >   			snd_printdd("error usb_driver_set_configuration: %d\n",
> >   				    err);
> > -			return -ENODEV;
> > -		}
> > +		/* Always return an error, so that we stop creating a device
> > +		   that will just be destroyed and recreated with a new
> > +		   configuration */
> > +		return -ENODEV;
> >   	} else
> >   		snd_printk(KERN_INFO "usb-audio: Fast Track Pro config OK\n");
> >
> >
> 
> 
> 
> -- 
> David Henningsson, Canonical Ltd.
> https://launchpad.net/~diwic
> 


More information about the Alsa-devel mailing list