]> www.infradead.org Git - users/hch/misc.git/commitdiff
usb: gadget: f_tcm: Stop proceeding further on -ESHUTDOWN
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Wed, 11 Dec 2024 00:33:31 +0000 (00:33 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Dec 2024 07:56:07 +0000 (08:56 +0100)
If the error code is -ESHUTDOWN, stop processing the request/command
further and prepare for teardown. -ESHUTDOWN is for device reset or
disconnection.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/b14410cce6bc7b8a0b43da23a8e0cf1ed1fa8ab6.1733876548.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_tcm.c

index 8a5aa58e166e607b3870f7ac273b68aab1d9f3e9..6aa341c1472aa3636858634d362c02eb5006958d 100644 (file)
@@ -62,10 +62,11 @@ static void bot_status_complete(struct usb_ep *ep, struct usb_request *req)
        struct f_uas *fu = cmd->fu;
 
        transport_generic_free_cmd(&cmd->se_cmd, 0);
-       if (req->status < 0) {
-               pr_err("ERR %s(%d)\n", __func__, __LINE__);
+       if (req->status == -ESHUTDOWN)
                return;
-       }
+
+       if (req->status < 0)
+               pr_err("ERR %s(%d)\n", __func__, __LINE__);
 
        /* CSW completed, wait for next CBW */
        bot_enqueue_cmd_cbw(fu);
@@ -276,6 +277,9 @@ static void bot_cmd_complete(struct usb_ep *ep, struct usb_request *req)
        struct f_uas *fu = req->context;
        int ret;
 
+       if (req->status == -ESHUTDOWN)
+               return;
+
        fu->flags &= ~USBG_BOT_CMD_PEND;
 
        if (req->status < 0)