UPSTREAM: usb: dwc3: gadget: Don't prepare TRBs if no space
authorJohn Youn <johnyoun@synopsys.com>
Fri, 20 May 2016 00:26:10 +0000 (17:26 -0700)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 16 Aug 2016 12:48:19 +0000 (20:48 +0800)
If trbs_left == 0, we don't have any space left in the TRB ring so don't
prepare anything.

Change-Id: I1dc6c665b778a7988fca9cd890884ad27dc830ef
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit 89bc856e5a7462e47d90d5a3f5396bd5795efd0c)

drivers/usb/dwc3/gadget.c

index c690cb3d891839bd1a02b1de1c43fa627e5be541..a93b42973b9792eba3fdb24ca27bfa2bd87715f8 100644 (file)
@@ -942,6 +942,8 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep)
        BUILD_BUG_ON_NOT_POWER_OF_2(DWC3_TRB_NUM);
 
        trbs_left = dwc3_calc_trbs_left(dep);
+       if (!trbs_left)
+               return;
 
        list_for_each_entry_safe(req, n, &dep->pending_list, list) {
                if (req->request.num_mapped_sgs > 0)