diff options
Diffstat (limited to 'drivers/usb/gadget/net2280.c')
| -rw-r--r-- | drivers/usb/gadget/net2280.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c index a1b650e11339..3bd0f992fb49 100644 --- a/drivers/usb/gadget/net2280.c +++ b/drivers/usb/gadget/net2280.c | |||
| @@ -1924,7 +1924,6 @@ static int net2280_start(struct usb_gadget *_gadget, | |||
| 1924 | err_func: | 1924 | err_func: |
| 1925 | device_remove_file (&dev->pdev->dev, &dev_attr_function); | 1925 | device_remove_file (&dev->pdev->dev, &dev_attr_function); |
| 1926 | err_unbind: | 1926 | err_unbind: |
| 1927 | driver->unbind (&dev->gadget); | ||
| 1928 | dev->gadget.dev.driver = NULL; | 1927 | dev->gadget.dev.driver = NULL; |
| 1929 | dev->driver = NULL; | 1928 | dev->driver = NULL; |
| 1930 | return retval; | 1929 | return retval; |
| @@ -1946,6 +1945,13 @@ stop_activity (struct net2280 *dev, struct usb_gadget_driver *driver) | |||
| 1946 | for (i = 0; i < 7; i++) | 1945 | for (i = 0; i < 7; i++) |
| 1947 | nuke (&dev->ep [i]); | 1946 | nuke (&dev->ep [i]); |
| 1948 | 1947 | ||
| 1948 | /* report disconnect; the driver is already quiesced */ | ||
| 1949 | if (driver) { | ||
| 1950 | spin_unlock(&dev->lock); | ||
| 1951 | driver->disconnect(&dev->gadget); | ||
| 1952 | spin_lock(&dev->lock); | ||
| 1953 | } | ||
| 1954 | |||
| 1949 | usb_reinit (dev); | 1955 | usb_reinit (dev); |
| 1950 | } | 1956 | } |
| 1951 | 1957 | ||
