From 468d180da79b399199559d8fdf5c2425463db7ab Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sun, 23 Dec 2012 21:09:55 +0100 Subject: [PATCH] --- yaml --- r: 354635 b: refs/heads/master c: 779d516ca91d796cb37bd0760282d08f90661ee2 h: refs/heads/master i: 354633: 7d8a3c9fb0f502a14658002f2f608f45afe5af65 354631: b32b0e5641bf41cbe3856491e00d01874a819c8a v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/composite.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 54976263c955..a46be3aab731 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: afd2e186bd7e58dc9d298ff5fb5a2fc30578867e +refs/heads/master: 779d516ca91d796cb37bd0760282d08f90661ee2 diff --git a/trunk/drivers/usb/gadget/composite.c b/trunk/drivers/usb/gadget/composite.c index 71475b6d8568..9db000013f5d 100644 --- a/trunk/drivers/usb/gadget/composite.c +++ b/trunk/drivers/usb/gadget/composite.c @@ -1349,8 +1349,7 @@ static ssize_t composite_show_suspended(struct device *dev, static DEVICE_ATTR(suspended, 0444, composite_show_suspended, NULL); -static void -composite_unbind(struct usb_gadget *gadget) +static void __composite_unbind(struct usb_gadget *gadget, bool unbind_driver) { struct usb_composite_dev *cdev = get_gadget_data(gadget); @@ -1367,7 +1366,7 @@ composite_unbind(struct usb_gadget *gadget) struct usb_configuration, list); remove_config(cdev, c); } - if (cdev->driver->unbind) + if (cdev->driver->unbind && unbind_driver) cdev->driver->unbind(cdev); if (cdev->req) { @@ -1380,6 +1379,11 @@ composite_unbind(struct usb_gadget *gadget) set_gadget_data(gadget, NULL); } +static void composite_unbind(struct usb_gadget *gadget) +{ + __composite_unbind(gadget, true); +} + static void update_unchanged_dev_desc(struct usb_device_descriptor *new, const struct usb_device_descriptor *old) { @@ -1488,7 +1492,7 @@ static int composite_bind(struct usb_gadget *gadget, return 0; fail: - composite_unbind(gadget); + __composite_unbind(gadget, false); return status; }