Hi, On Tue, Dec 20, 2011 at 05:57:09PM +0200, Alexander Shishkin wrote: > UDC core will call disconnect() and unbind() for us upon the gadget > removal, so we should not do it ourselves. Otherwise, a composite > gadget will explode, for example. Others might too. > > Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> > Cc: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxx> > Cc: linux-usb@xxxxxxxxxxxxxxx > --- > drivers/usb/gadget/langwell_udc.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c > index 34e3bf8..580548b 100644 > --- a/drivers/usb/gadget/langwell_udc.c > +++ b/drivers/usb/gadget/langwell_udc.c > @@ -1920,7 +1920,7 @@ static int langwell_stop(struct usb_gadget *g, > > /* stop all usb activities */ > dev->gadget.speed = USB_SPEED_UNKNOWN; > - stop_activity(dev, driver); > + stop_activity(dev, NULL); this is quite a hack :-) The real fix will be remove the dead code and the extra (now useless) 'driver' parameter to stop_activity. You can also blame me for the bad conversion to udc_start/udc_stop. The commit which introduced the bug was 2c7f0989 -- balbi
Attachment:
signature.asc
Description: Digital signature