From 99924db71f61ffb155cd4d0ce640376019126de8 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 1 Sep 2023 11:49:57 +0200 Subject: [PATCH] spl: sdp: Detach the controller on error In case anything errors out during the SDP transfer, detach the controller instead of bailing out right away. This way, the controller can be reattached on next attempt. Reviewed-by: Mattijs Korpershoek Signed-off-by: Marek Vasut --- common/spl/spl_sdp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/common/spl/spl_sdp.c b/common/spl/spl_sdp.c index cc4fb4f7cc..aae886d2e5 100644 --- a/common/spl/spl_sdp.c +++ b/common/spl/spl_sdp.c @@ -25,13 +25,13 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, ret = g_dnl_register("usb_dnl_sdp"); if (ret) { pr_err("SDP dnl register failed: %d\n", ret); - return ret; + goto err_detach; } ret = sdp_init(controller_index); if (ret) { pr_err("SDP init failed: %d\n", ret); - return -ENODEV; + goto err_unregister; } /* @@ -42,6 +42,9 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, ret = spl_sdp_handle(controller_index, spl_image, bootdev); debug("SDP ended\n"); +err_unregister: + g_dnl_unregister(); +err_detach: usb_gadget_release(controller_index); return ret; } -- 2.39.5