
On Thu, Jan 04, 2024 at 05:26:23AM +0100, Heinrich Schuchardt wrote:
From: Eugeniu Rosca erosca@de.adit-jv.com
Booting R-Car Gen3 arm64 U-Boot with CONFIG_UBSAN=y resulted in:
===================================================================== UBSAN: Undefined behaviour in drivers/net/phy/phy.c:728:19 left shift of 1 by 31 places cannot be represented in type 'int' =====================================================================
Fix it by appending the UL suffix to the numeric literal. While at it, convert the type of "addr" variable from signed to unsigned, to protect against shifting the numeric literal by a negative value (which would lead to yet another undefined behavior).
Fixes: 1adb406b0141 ("phy: add phy_find_by_mask/phy_connect_dev") Signed-off-by: Eugeniu Rosca erosca@de.adit-jv.com
- Using U-suffix for integer is sufficient.
- ffs() of non-zero value cannot be 0. But addr being unsigned is
- preferable.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
Applied to u-boot/next, thanks!