mirror of https://gitee.com/openkylin/linux.git
5fca3f0628
The code: trb->length = cpu_to_le32(TRB_BURST_LEN(priv_ep->trb_burst_size) | TRB_LEN(length)); TRB_BURST_LEN(priv_ep->trb_burst_size) may be overflow for int 32 if priv_ep->trb_burst_size is equal or larger than 0x80; Below is the Coverity warning: sign_extension: Suspicious implicit sign extension: priv_ep->trb_burst_size with type u8 (8 bits, unsigned) is promoted in priv_ep->trb_burst_size << 24 to type int (32 bits, signed), then sign-extended to type unsigned long (64 bits, unsigned). If priv_ep->trb_burst_size << 24 is greater than 0x7FFFFFFF, the upper bits of the result will all be 1. To fix it, it needs to add an explicit cast to unsigned int type for ((p) << 24). Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
cdns3-imx.c | ||
cdns3-pci-wrap.c | ||
cdns3-ti.c | ||
core.c | ||
core.h | ||
debug.h | ||
drd.c | ||
drd.h | ||
ep0.c | ||
gadget-export.h | ||
gadget.c | ||
gadget.h | ||
host-export.h | ||
host.c | ||
trace.c | ||
trace.h |