]> git.itanic.dy.fi Git - linux-stable/commit
net: phy: fix phy_read_poll_timeout argument type in genphy_loopback
authorNikita Kiryushin <kiryushin@ancud.ru>
Fri, 15 Mar 2024 17:50:52 +0000 (20:50 +0300)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:17:36 +0000 (18:17 -0400)
commit954b72d92e03ae6a79bb8f3d13a383f9113270a2
tree293f518a1a86e0e5cdb2ebe7abfabd28002cb288
parent834c93dcef0beacfee365bd55741d6dba147aa37
net: phy: fix phy_read_poll_timeout argument type in genphy_loopback

[ Upstream commit 32fa4366cc4da1c97b725a0066adf43c6b298f37 ]

read_poll_timeout inside phy_read_poll_timeout can set val negative
in some cases (for example, __mdiobus_read inside phy_read can return
-EOPNOTSUPP).

Supposedly, commit 4ec732951702 ("net: phylib: fix phy_read*_poll_timeout()")
should fix problems with wrong-signed vals, but I do not see how
as val is sent to phy_read as is and __val = phy_read (not val)
is checked for sign.

Change val type for signed to allow better error handling as done in other
phy_read_poll_timeout callers. This will not fix any error handling
by itself, but allows, for example, to modify cond with appropriate
sign check or check resulting val separately.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 014068dcb5b1 ("net: phy: genphy_loopback: add link speed configuration")
Signed-off-by: Nikita Kiryushin <kiryushin@ancud.ru>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20240315175052.8049-1-kiryushin@ancud.ru
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/phy/phy_device.c