For streams, sometime host may reject a stream and the device may need to reinitiate that stream by stopping and restarting a transfer. In this case, all the TRBs may have already been prepared. Allow the __dwc3_gadget_kick_transfer() to go through to reinitiate the stream. Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> --- drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 82bc075ba97c..c53a22f0d952 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1327,7 +1327,7 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep) u32 cmd; ret = dwc3_prepare_trbs(dep); - if (ret <= 0) + if (ret < 0) return ret; starting = !(dep->flags & DWC3_EP_TRANSFER_STARTED); base-commit: 53139e6fa28fa0faa0a40476b033e13da25751fe -- 2.28.0