linux-stable/drivers/usb
Wesley Cheng 5e76ee96be usb: dwc3: ep0: Properly handle setup_packet_pending scenario in data stage
During a 3 stage SETUP transfer, if the host sends another SETUP token
before completing the status phase, it signifies that the host has aborted
the current control transfer.  Currently, if a setup_packet_pending is
received, there are no subsequent calls to dwc3_ep0_out_start() to fetch
the new SETUP packet.  This leads to a stall on EP0, as host does not
expect another STATUS phase as it has aborted the current transfer.

Fix this issue by explicitly stalling and restarting EP0, as well as
resetting the trb_enqueue indexes.  (without this, there is a chance the
SETUP TRB is set up on trb_endqueue == 1)

Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/20220712014403.2977-1-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-14 16:09:43 +02:00
..
atm usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 Linux 5.19-rc3 2022-06-20 09:41:33 +02:00
chipidea Linux 5.19-rc4 2022-06-27 10:03:28 +02:00
class USB: cdc-acm: use define for timeout 2022-06-29 21:02:28 +02:00
common usb: common: usb-conn-gpio: Allow wakeup from system suspend 2022-06-10 11:48:41 +02:00
core usb: core: hub: Create platform devices for onboard hubs in hub_probe() 2022-07-08 14:53:50 +02:00
dwc2 usb: dwc2: drop unexpected word "the" in the comments 2022-06-24 13:37:34 +02:00
dwc3 usb: dwc3: ep0: Properly handle setup_packet_pending scenario in data stage 2022-07-14 16:09:43 +02:00
early usb: early: xhci-dbc: Fix xdbc number parsing 2022-03-15 18:20:34 +01:00
gadget usb: gadget: f_mass_storage: forced_eject attribute 2022-07-14 16:06:42 +02:00
host usb: host: xhci: use snprintf() in xhci_decode_trb() 2022-06-30 15:42:31 +02:00
image
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc usb: misc: onboard_hub: Fix 'missing prototype' warning 2022-07-14 16:09:32 +02:00
mon
mtu3 usb: mtu3: support function remote wakeup 2022-07-08 14:53:30 +02:00
musb usb: musb: mpfs: add missing clk_disable_unprepare() in mpfs_remove() 2022-06-29 21:02:05 +02:00
phy Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-06-21 16:39:03 +02:00
roles
serial USB: serial: option: add Quectel RM500K module support 2022-06-23 13:58:05 +02:00
storage USB: storage: Fix typo in comment 2022-06-21 16:39:42 +02:00
typec usb: typec: tcpci: move tcpci.h to include/linux/usb/ 2022-07-08 14:51:16 +02:00
usbip usbip: vudc: Don't enable IRQs prematurely 2022-06-10 11:48:19 +02:00
Kconfig
Makefile
usb-skeleton.c