As usb_gstrings_attach() failure can happen when some USB functions are
are already added to some configurations (in previous loop iterations),
we should always call purge_configs_funcs() to be sure that failure is
be handled properly.

Signed-off-by: Robert Baldyga <r.bald...@samsung.com>
---
 drivers/usb/gadget/configfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 590c449..fb3c9ba 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -1345,7 +1345,7 @@ static int configfs_composite_bind(struct usb_gadget 
*gadget,
                        s = usb_gstrings_attach(&gi->cdev, cfg->gstrings, 1);
                        if (IS_ERR(s)) {
                                ret = PTR_ERR(s);
-                               goto err_comp_cleanup;
+                               goto err_purge_funcs;
                        }
                        c->iConfiguration = s[0].id;
                }
-- 
1.9.1

Reply via email to