|
|
@@ -1140,8 +1140,14 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
|
|
|
if (!dep->endpoint.desc) {
|
|
|
dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
|
|
|
request, ep->name);
|
|
|
- spin_unlock_irqrestore(&dwc->lock, flags);
|
|
|
- return -ESHUTDOWN;
|
|
|
+ ret = -ESHUTDOWN;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (WARN(req->dep != dep, "request %p belongs to '%s'\n",
|
|
|
+ request, req->dep->name)) {
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto out;
|
|
|
}
|
|
|
|
|
|
dev_vdbg(dwc->dev, "queing request %p to %s length %d\n",
|
|
|
@@ -1149,6 +1155,8 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
|
|
|
trace_dwc3_ep_queue(req);
|
|
|
|
|
|
ret = __dwc3_gadget_ep_queue(dep, req);
|
|
|
+
|
|
|
+out:
|
|
|
spin_unlock_irqrestore(&dwc->lock, flags);
|
|
|
|
|
|
return ret;
|