usb: dwc3: gadget: Fix request completion check
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Tue, 31 Mar 2020 08:40:35 +0000 (01:40 -0700)
committerFelipe Balbi <balbi@kernel.org>
Fri, 17 Apr 2020 07:07:01 +0000 (10:07 +0300)
commit49e0590e3a60e75b493e5df879e216e5073c7663
tree48577acb7e8f1f4d3cc266898f3b56d7c71b6fff
parentd0550cd20e52558ecf6847a0f96ebd5d944c17e4
usb: dwc3: gadget: Fix request completion check

A request may not be completed because not all the TRBs are prepared for
it. This happens when we run out of available TRBs. When some TRBs are
completed, the driver needs to prepare the rest of the TRBs for the
request. The check dwc3_gadget_ep_request_completed() shouldn't be
checking the amount of data received but rather the number of pending
TRBs. Revise this request completion check.

Cc: stable@vger.kernel.org
Fixes: e0c42ce590fe ("usb: dwc3: gadget: simplify IOC handling")
Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/dwc3/gadget.c