linux/drivers/usb/dwc3
Thinh Nguyen ba3a51ac32 usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
Current check for the last extra TRB for zero and unaligned transfers
does not account for isoc OUT. The last TRB of the Buffer Descriptor for
isoc OUT transfers will be retired with HWO=0. As a result, we won't
return early. The req->remaining will be updated to include the BUFSIZ
count of the extra TRB, and the actual number of transferred bytes
calculation will be wrong.

To fix this, check whether it's a short or zero packet and the last TRB
chain bit to return early.

Fixes: c6267a5163 ("usb: dwc3: gadget: align transfers to wMaxPacketSize")
Cc: <stable@vger.kernel.org>
Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-11-06 08:40:47 +02:00
..
core.c usb: dwc3: core: Clean up ULPI device 2018-11-06 08:40:47 +02:00
core.h usb: dwc3: core: Enable AutoRetry feature in the controller 2018-07-30 10:39:18 +03:00
debug.h
debugfs.c
drd.c
dwc3-exynos.c usb: dwc3: exynos: Add support for Exynos5433 variant with all clocks 2018-10-02 10:33:01 +03:00
dwc3-haps.c usb: dwc3: Add a glue driver for Synopsys HAPS platform 2018-07-26 13:47:51 +03:00
dwc3-keystone.c
dwc3-of-simple.c usb: dwc3: of-simple: avoid unused function warnings 2018-08-29 09:59:37 +03:00
dwc3-omap.c
dwc3-pci.c usb: dwc3: pci: Fix return value check in dwc3_byt_enable_ulpi_refclock() 2018-08-29 10:01:34 +03:00
dwc3-qcom.c usb: dwc3: qcom: mark PM functions as __maybe_unused 2018-06-19 12:48:12 +03:00
dwc3-st.c
ep0.c usb: dwc3: gadget: remove redundant variable maxpacket 2018-07-13 15:41:56 +02:00
gadget.c usb: dwc3: gadget: Properly check last unaligned/zero chain TRB 2018-11-06 08:40:47 +02:00
gadget.h usb: dwc3: change stream event enable bit back to 13 2018-07-26 14:04:28 +03:00
host.c
io.h
Kconfig usb: dwc3: add EXTCON dependency for qcom 2018-10-02 10:33:43 +03:00
Makefile usb: dwc3: Add a glue driver for Synopsys HAPS platform 2018-07-26 13:47:51 +03:00
trace.c
trace.h
ulpi.c