summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-11-13 11:12:56 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-11-13 11:12:56 -0800
commit2aea83a484fc6739a05c2bc438ad4cea1d97dc87 (patch)
treea1d9f9593aa0fcfa986189c8fbc5b9d990cf873a
parent206c5f60a3d902bc4b56dab2de3e88de5eb06108 (diff)
parent520fe7633692181bb6d1560d655fbdfbb7c05aaa (diff)
Merge tag 'fixes-for-v3.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes: usb: fixes for v3.18-rc5 Just one fix here on dwc3 which fixes a minor bug caused by a fix that went in this v3.18-rc cycle. The corner case is minimal as it can only be reproduced with back-to-back Setup transfers (without starting data or status phase) by means of a LeCroy USB Trainer, where we can generate USB packets any way we like. Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/dwc3/ep0.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 711b23019d5..df38e7ef497 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -791,6 +791,10 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
trb = dwc->ep0_trb;
+ r = next_request(&ep0->request_list);
+ if (!r)
+ return;
+
status = DWC3_TRB_SIZE_TRBSTS(trb->size);
if (status == DWC3_TRBSTS_SETUP_PENDING) {
dwc3_trace(trace_dwc3_ep0, "Setup Pending received");
@@ -801,10 +805,6 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
return;
}
- r = next_request(&ep0->request_list);
- if (!r)
- return;
-
ur = &r->request;
length = trb->size & DWC3_TRB_SIZE_MASK;