Commit 0eafe8d3 authored by Thinh Nguyen's avatar Thinh Nguyen Committed by Ray Chi
Browse files

BACKPORT: usb: dwc3: gadget: Don't delay End Transfer on delayed_status



The gadget driver may wait on the request completion when it sets the
USB_GADGET_DELAYED_STATUS. Make sure that the End Transfer command can
go through if the dwc->delayed_status is set so that the request can
complete. When the delayed_status is set, the Setup packet is already
processed, and the next phase should be either Data or Status. It's
unlikely that the host would cancel the control transfer and send a new
Setup packet during End Transfer command. But if that's the case, we can
try again when ep0state returns to EP0_SETUP_PHASE.

Bug: 276227797

Fixes: e1ee8434 ("usb: dwc3: gadget: Force sending delayed status during soft disconnect")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarThinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/3f9f59e5d74efcbaee444cf4b30ef639cc7b124e.1666146954.git.Thinh.Nguyen@synopsys.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 4db0fbb6)

Bug: 279882628
Change-Id: Iff7cba3b942f1f6f51814ab8ef7d5c94132d47bf
Signed-off-by: default avatarRay Chi <raychi@google.com>
(cherry picked from ebf7be52)
parent 7b35288b
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment