|
@@ -1044,6 +1044,17 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
|
|
struct dwc3 *dwc = dep->dwc;
|
|
struct dwc3 *dwc = dep->dwc;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ if (!dep->endpoint.desc) {
|
|
|
|
+ dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
|
|
|
|
+ &req->request, dep->endpoint.name);
|
|
|
|
+ return -ESHUTDOWN;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (WARN(req->dep != dep, "request %p belongs to '%s'\n",
|
|
|
|
+ &req->request, req->dep->name)) {
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
|
|
+
|
|
req->request.actual = 0;
|
|
req->request.actual = 0;
|
|
req->request.status = -EINPROGRESS;
|
|
req->request.status = -EINPROGRESS;
|
|
req->direction = dep->direction;
|
|
req->direction = dep->direction;
|
|
@@ -1161,22 +1172,7 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
spin_lock_irqsave(&dwc->lock, flags);
|
|
spin_lock_irqsave(&dwc->lock, flags);
|
|
- if (!dep->endpoint.desc) {
|
|
|
|
- dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
|
|
|
|
- request, ep->name);
|
|
|
|
- ret = -ESHUTDOWN;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (WARN(req->dep != dep, "request %p belongs to '%s'\n",
|
|
|
|
- request, req->dep->name)) {
|
|
|
|
- ret = -EINVAL;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
ret = __dwc3_gadget_ep_queue(dep, req);
|
|
ret = __dwc3_gadget_ep_queue(dep, req);
|
|
-
|
|
|
|
-out:
|
|
|
|
spin_unlock_irqrestore(&dwc->lock, flags);
|
|
spin_unlock_irqrestore(&dwc->lock, flags);
|
|
|
|
|
|
return ret;
|
|
return ret;
|