Re: [PATCH] phy: phy_ethtool_ksettings_set: Don't discard phy_start_aneg's return
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2021-11-06 21:52:36
On 05.11.2021 16:36, bage@linutronix.de wrote:
From: Bastian Germann <redacted>
Take the return of phy_start_aneg into account so that ethtool will handle
negotiation errors and not silently accept invalid input.
Fixes: 2d55173e71b0 ("phy: add generic function to support ksetting support")
Signed-off-by: Bastian Germann <redacted>
Reviewed-by: Benedikt Spranger <redacted>In addition to what Andrew said already: - This patch won't apply on net due to a4db9055fdb9. - Patch misses the "net" annotation. - Prefix should be "net: phy:", not "phy:". At least the formal aspects should have been covered by the internal review.
quoted hunk ↗ jump to hunk
--- drivers/net/phy/phy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index a3bfb156c83d..f740b533abba 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c@@ -770,6 +770,8 @@ static int phy_poll_aneg_done(struct phy_device *phydev) int phy_ethtool_ksettings_set(struct phy_device *phydev, const struct ethtool_link_ksettings *cmd) { + int ret = 0;
Why initializing ret?
quoted hunk ↗ jump to hunk
+ __ETHTOOL_DECLARE_LINK_MODE_MASK(advertising); u8 autoneg = cmd->base.autoneg; u8 duplex = cmd->base.duplex;@@ -815,10 +817,10 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev, phydev->mdix_ctrl = cmd->base.eth_tp_mdix_ctrl; /* Restart the PHY */ - _phy_start_aneg(phydev); + ret = _phy_start_aneg(phydev); mutex_unlock(&phydev->lock); - return 0; + return ret; } EXPORT_SYMBOL(phy_ethtool_ksettings_set);