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