a3fafc974b
[ Upstream commit 40e4eb324c59e11fcb927aa46742d28aba6ecb8a ]
Shifting signed 32-bit value by 31 bits is undefined, so changing
significant bit to unsigned. The UBSAN warning calltrace like below:
UBSAN: shift-out-of-bounds in drivers/net/phy/mdio_bus.c:586:27
left shift of 1 by 31 places cannot be represented in type 'int'
Call Trace:
<TASK>
dump_stack_lvl+0x7d/0xa5
dump_stack+0x15/0x1b
ubsan_epilogue+0xe/0x4e
__ubsan_handle_shift_out_of_bounds+0x1e7/0x20c
__mdiobus_register+0x49d/0x4e0
fixed_mdio_bus_init+0xd8/0x12d
do_one_initcall+0x76/0x430
kernel_init_freeable+0x3b3/0x422
kernel_init+0x24/0x1e0
ret_from_fork+0x1f/0x30
</TASK>
Fixes:
|
||
---|---|---|
.. | ||
amd.c | ||
aquantia.c | ||
at803x.c | ||
ax88796b.c | ||
bcm7xxx.c | ||
bcm63xx.c | ||
bcm87xx.c | ||
bcm-cygnus.c | ||
bcm-phy-lib.c | ||
bcm-phy-lib.h | ||
broadcom.c | ||
cicada.c | ||
cortina.c | ||
davicom.c | ||
dp83tc811.c | ||
dp83640_reg.h | ||
dp83640.c | ||
dp83822.c | ||
dp83848.c | ||
dp83867.c | ||
et1011c.c | ||
fixed_phy.c | ||
icplus.c | ||
intel-xway.c | ||
Kconfig | ||
lxt.c | ||
Makefile | ||
marvell10g.c | ||
marvell.c | ||
mdio_bus.c | ||
mdio_device.c | ||
mdio-bcm-iproc.c | ||
mdio-bcm-unimac.c | ||
mdio-bitbang.c | ||
mdio-boardinfo.c | ||
mdio-boardinfo.h | ||
mdio-cavium.c | ||
mdio-cavium.h | ||
mdio-gpio.c | ||
mdio-hisi-femac.c | ||
mdio-i2c.c | ||
mdio-i2c.h | ||
mdio-moxart.c | ||
mdio-mscc-miim.c | ||
mdio-mux-bcm-iproc.c | ||
mdio-mux-gpio.c | ||
mdio-mux-mmioreg.c | ||
mdio-mux.c | ||
mdio-octeon.c | ||
mdio-sun4i.c | ||
mdio-thunder.c | ||
mdio-xgene.c | ||
mdio-xgene.h | ||
meson-gxl.c | ||
micrel.c | ||
microchip_t1.c | ||
microchip.c | ||
mscc.c | ||
national.c | ||
phy_device.c | ||
phy_led_triggers.c | ||
phy-c45.c | ||
phy-core.c | ||
phy.c | ||
phylink.c | ||
qsemi.c | ||
realtek.c | ||
rockchip.c | ||
sfp-bus.c | ||
sfp.c | ||
sfp.h | ||
smsc.c | ||
spi_ks8995.c | ||
ste10Xp.c | ||
swphy.c | ||
swphy.h | ||
teranetics.c | ||
uPD60620.c | ||
vitesse.c | ||
xilinx_gmii2rgmii.c |