[PATCH v2] usb: dwc2: host: do not delay retries after successful transfer

From: Douglas Anderson
Date: Tue Jul 17 2018 - 16:10:42 EST


From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

When handling split transactions we should not be delaying retrying
SSPLIT/CSPLIT after we successfully communicate with the device, so
let's reset dtd->num_naks counter when handling XFERCOMPL.

Fixes: 38d2b5fb75c1 ("usb: dwc2: host: Don't retry NAKed transactions right away")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
---

Changes in v2:
- Move clearing num_naks to the start to avoid use after free

drivers/usb/dwc2/hcd_intr.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/dwc2/hcd_intr.c b/drivers/usb/dwc2/hcd_intr.c
index 8ce10caf3e19..4e1953b2955e 100644
--- a/drivers/usb/dwc2/hcd_intr.c
+++ b/drivers/usb/dwc2/hcd_intr.c
@@ -994,6 +994,8 @@ static void dwc2_hc_xfercomp_intr(struct dwc2_hsotg *hsotg,
int pipe_type;
int urb_xfer_done;

+ qtd->num_naks = 0;
+
if (dbg_hc(chan))
dev_vdbg(hsotg->dev,
"--Host Channel %d Interrupt: Transfer Complete--\n",
--
2.18.0.203.gfac676dfb9-goog