diff options
-rw-r--r-- | drivers/usb/gadget/configfs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c index 80e7f75a56c7..8f0d6141e5e6 100644 --- a/drivers/usb/gadget/configfs.c +++ b/drivers/usb/gadget/configfs.c | |||
@@ -859,8 +859,10 @@ static int configfs_composite_bind(struct usb_gadget *gadget, | |||
859 | list_for_each_entry_safe(f, tmp, &cfg->func_list, list) { | 859 | list_for_each_entry_safe(f, tmp, &cfg->func_list, list) { |
860 | list_del(&f->list); | 860 | list_del(&f->list); |
861 | ret = usb_add_function(c, f); | 861 | ret = usb_add_function(c, f); |
862 | if (ret) | 862 | if (ret) { |
863 | list_add(&f->list, &cfg->func_list); | ||
863 | goto err_purge_funcs; | 864 | goto err_purge_funcs; |
865 | } | ||
864 | } | 866 | } |
865 | usb_ep_autoconfig_reset(cdev->gadget); | 867 | usb_ep_autoconfig_reset(cdev->gadget); |
866 | } | 868 | } |