Преглед изворни кода

USB: s3c2410: deactivate endpoints before gadget unbinding

Gadget disconnect must be called before unbinding to avoid races.
The change fixes an oops on g_ether module unregistering.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Vladimir Zapolskiy пре 15 година
родитељ
комит
3b49d2315c
1 измењених фајлова са 5 додато и 1 уклоњено
  1. 5 1
      drivers/usb/gadget/s3c2410_udc.c

+ 5 - 1
drivers/usb/gadget/s3c2410_udc.c

@@ -1700,9 +1700,13 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
 	if (!driver || driver != udc->driver || !driver->unbind)
 	if (!driver || driver != udc->driver || !driver->unbind)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	dprintk(DEBUG_NORMAL,"usb_gadget_register_driver() '%s'\n",
+	dprintk(DEBUG_NORMAL, "usb_gadget_unregister_driver() '%s'\n",
 		driver->driver.name);
 		driver->driver.name);
 
 
+	/* report disconnect */
+	if (driver->disconnect)
+		driver->disconnect(&udc->gadget);
+
 	driver->unbind(&udc->gadget);
 	driver->unbind(&udc->gadget);
 
 
 	device_del(&udc->gadget.dev);
 	device_del(&udc->gadget.dev);