mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 04:11:44 +07:00
b987b66ac3
It seems that the right variable to use in this case is *i*, instead of
*n*, otherwise there is an undefined behavior when right shifiting by more
than 31 bits when multiplying n by 8; notice that *n* can take values
equal or greater than 4 (4, 8, 16, ...).
Also, notice that under the current conditions (bl = 3), we are skiping
the handling of bytes 3, 7, 31... So, fix this by updating this logic
and limit *bl* up to 4 instead of up to 3.
This fix is based on function udc_stuff_fifo().
Addresses-Coverity-ID: 1454834 ("Bad bit shift operation")
Fixes:
|
||
---|---|---|
.. | ||
aspeed-vhub | ||
bdc | ||
amd5536udc_pci.c | ||
amd5536udc.h | ||
at91_udc.c | ||
at91_udc.h | ||
atmel_usba_udc.c | ||
atmel_usba_udc.h | ||
bcm63xx_udc.c | ||
core.c | ||
dummy_hcd.c | ||
fotg210-udc.c | ||
fotg210.h | ||
fsl_mxc_udc.c | ||
fsl_qe_udc.c | ||
fsl_qe_udc.h | ||
fsl_udc_core.c | ||
fsl_usb2_udc.h | ||
fusb300_udc.c | ||
fusb300_udc.h | ||
goku_udc.c | ||
goku_udc.h | ||
gr_udc.c | ||
gr_udc.h | ||
Kconfig | ||
lpc32xx_udc.c | ||
m66592-udc.c | ||
m66592-udc.h | ||
Makefile | ||
mv_u3d_core.c | ||
mv_u3d.h | ||
mv_udc_core.c | ||
mv_udc.h | ||
net2272.c | ||
net2272.h | ||
net2280.c | ||
net2280.h | ||
omap_udc.c | ||
omap_udc.h | ||
pch_udc.c | ||
pxa25x_udc.c | ||
pxa25x_udc.h | ||
pxa27x_udc.c | ||
pxa27x_udc.h | ||
r8a66597-udc.c | ||
r8a66597-udc.h | ||
renesas_usb3.c | ||
s3c2410_udc.c | ||
s3c2410_udc.h | ||
s3c-hsudc.c | ||
snps_udc_core.c | ||
snps_udc_plat.c | ||
trace.c | ||
trace.h | ||
udc-xilinx.c |