From: John Youn <johnyoun@synopsys.com> Date: Mon, 23 May 2016 18:32:45 +0000 (-0700) Subject: UPSTREAM: usb: dwc3: gadget: Fix truncated cast issue X-Git-Tag: firefly_0821_release~1799 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9557d798b3b41cb52f708eb57cd5246a2cd747a3;p=firefly-linux-kernel-4.4.55.git UPSTREAM: usb: dwc3: gadget: Fix truncated cast issue From sparse: warning: cast truncates bits from constant value (100 becomes 0) The DWC3_TRB_NUM constant is too big for u8. Do the calculation a slightly different way that should still be optimized out for the case where DWC3_TRB_NUM == 256. Change-Id: If6f9d66a7545230b0d0f21ab05dacd0f572f10b6 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 3de2685f0c395a56b909dbefd40fb287c9df31b2) --- diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c8c07f667636..cbf90aeb03a1 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -882,7 +882,7 @@ static u32 dwc3_calc_trbs_left(struct dwc3_ep *dep) } trbs_left = dep->trb_dequeue - dep->trb_enqueue; - trbs_left %= DWC3_TRB_NUM; + trbs_left &= (DWC3_TRB_NUM - 1); if (dep->trb_dequeue < dep->trb_enqueue) trbs_left--;