• Thinh Nguyen's avatar
    usb: dwc3: gadget: Fix request completion check · 49e0590e
    Thinh Nguyen authored
    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: e0c42ce5 ("usb: dwc3: gadget: simplify IOC handling")
    Signed-off-by: default avatarThinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
    49e0590e
gadget.c 88.2 KB