return 0;
 }
 
-static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep)
+static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status)
 {
        struct dwc3_request             *req;
 
        while (!list_empty(&dep->started_list)) {
                req = next_request(&dep->started_list);
 
-               dwc3_gadget_giveback(dep, req, -ESHUTDOWN);
+               dwc3_gadget_giveback(dep, req, status);
        }
 
        while (!list_empty(&dep->pending_list)) {
                req = next_request(&dep->pending_list);
 
-               dwc3_gadget_giveback(dep, req, -ESHUTDOWN);
+               dwc3_gadget_giveback(dep, req, status);
        }
 
        while (!list_empty(&dep->cancelled_list)) {
                req = next_request(&dep->cancelled_list);
 
-               dwc3_gadget_giveback(dep, req, -ESHUTDOWN);
+               dwc3_gadget_giveback(dep, req, status);
        }
 }
 
                dep->endpoint.desc = NULL;
        }
 
-       dwc3_remove_requests(dwc, dep);
+       dwc3_remove_requests(dwc, dep, -ECONNRESET);
 
        dep->stream_capable = false;
        dep->type = 0;
                if (!dep)
                        continue;
 
-               dwc3_remove_requests(dwc, dep);
+               dwc3_remove_requests(dwc, dep, -ESHUTDOWN);
        }
 }