On Thu, Jul 19, 2018 at 08:48:32AM +0300, Felipe Balbi wrote: > > Hi, > > Jerry Zhang <zhangjerry@xxxxxxxxxx> writes: > > Commit 1b9ba000 ("Allow function drivers to pause control > > transfers") states that USB_GADGET_DELAYED_STATUS is only > > supported if data phase is 0 bytes. > > > > It seems that when the length is not 0 bytes, there is no > > need to explicitly delay the data stage since the transfer > > is not completed until the user responds. However, when the > > length is 0, there is no data stage and the transfer is > > finished once setup() returns, hence there is a need to > > explicitly delay completion. > > > > This manifests as the following bugs: > > > > Prior to 946ef68ad4e4 ('Let setup() return > > USB_GADGET_DELAYED_STATUS'), when setup is 0 bytes, ffs > > would require user to queue a 0 byte request in order to > > clear setup state. However, that 0 byte request was actually > > not needed and would hang and cause errors in other setup > > requests. > > > > After the above commit, 0 byte setups work since the gadget > > now accepts empty queues to ep0 to clear the delay, but all > > other setups hang. > > > > Fixes: 946ef68ad4e4 ("Let setup() return USB_GADGET_DELAYED_STATUS") > > Signed-off-by: Jerry Zhang <zhangjerry@xxxxxxxxxx> > > Greg, can you pick this one manually? > > Acked-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> Yes, I'll pick it up, thanks. greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html