Message ID | E1tZp1a-001V62-DT@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | b1754a69e7be48a64b3cdb0df60a96d97959da73 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: phylink: fix regression when binding a PHY | expand |
On Mon, Jan 20, 2025 at 10:28:54AM +0000, Russell King (Oracle) wrote: > Some PHYs don't support clause 45 access, and return -EOPNOTSUPP from > phy_modify_mmd(), which causes phylink_bringup_phy() to fail. Prevent > this failure by allowing -EOPNOTSUPP to also mean success. > > Reported-by: Jiawen Wu <jiawenwu@trustnetic.com> > Tested-by: Jiawen Wu <jiawenwu@trustnetic.com> > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 20 Jan 2025 10:28:54 +0000 you wrote: > Some PHYs don't support clause 45 access, and return -EOPNOTSUPP from > phy_modify_mmd(), which causes phylink_bringup_phy() to fail. Prevent > this failure by allowing -EOPNOTSUPP to also mean success. > > Reported-by: Jiawen Wu <jiawenwu@trustnetic.com> > Tested-by: Jiawen Wu <jiawenwu@trustnetic.com> > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > > [...] Here is the summary with links: - [net-next] net: phylink: fix regression when binding a PHY https://git.kernel.org/netdev/net-next/c/b1754a69e7be You are awesome, thank you!
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 66eea3f963d3..56d411bb2547 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -2268,7 +2268,11 @@ static int phylink_bringup_phy(struct phylink *pl, struct phy_device *phy, /* Explicitly configure whether the PHY is allowed to stop it's * receive clock. */ - return phy_eee_rx_clock_stop(phy, pl->config->eee_rx_clk_stop_enable); + ret = phy_eee_rx_clock_stop(phy, pl->config->eee_rx_clk_stop_enable); + if (ret == -EOPNOTSUPP) + ret = 0; + + return ret; } static int phylink_attach_phy(struct phylink *pl, struct phy_device *phy,