diff options
-rw-r--r-- | common/dfu.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/common/dfu.c b/common/dfu.c index 96190889ab7..32fba84da16 100644 --- a/common/dfu.c +++ b/common/dfu.c @@ -34,7 +34,8 @@ int run_usb_dnl_gadget(int usbctrl_index, char *usb_dnl_gadget) ret = g_dnl_register(usb_dnl_gadget); if (ret) { pr_err("g_dnl_register failed"); - return CMD_RET_FAILURE; + ret = CMD_RET_FAILURE; + goto err_detach; } #ifdef CONFIG_DFU_TIMEOUT @@ -106,6 +107,7 @@ int run_usb_dnl_gadget(int usbctrl_index, char *usb_dnl_gadget) } exit: g_dnl_unregister(); +err_detach: usb_gadget_release(usbctrl_index); if (dfu_reset) |