Re: [PATCH net-next v5 07/13] net: phy: phy_caps: Allow looking-up link caps based on speed and duplex
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2025-05-29 09:40:52
Also in:
linux-arm-kernel, lkml
On Thu, May 29, 2025 at 05:36:11PM +0800, Jijie Shao wrote:
quoted hunk ↗ jump to hunk
Hi Maxime, fc81e257d19f ("net: phy: phy_caps: Allow looking-up link caps based on speed and duplex") might have different behavior than the modification. My case is set 10M Half with disable autoneg both sides and I expect it is link in 10M Half. But now, it is link in 10M Full,which is not what I expect. I used followed command and trace how phy worked. ethtool -s eth1 autoneg off speed 10 duplex half The log is showed as followed: ethtool-13127 [067] 6164.771853: phy_ethtool_ksettings set: (phy_ethtool ksettings set+0x0/0x200) duplex=0 speed=10 kworker/u322:2-11096 [070] 6164.771853: _phy_start_aneq: ( _phy_start_aneg+0x0/0xb8) duplex=0 speed=10 kworker/u322:2-11096 [070] 6164.771854: phy_caps_lookup: (phy_caps_lookup+0x0/0xf0) duplex=0 speed=10 kworker/u322:2-11096 [070] 6164.771855: phy_config_aneg: (phy_config_aneg+0x0/0x70) duplex=1 speed=10 kworker/u322:2-11096 [070] 6164.771856: genphy_config_aneg: (__genphy_config_aneg+0X0/0X270) duplex=1 speed=10 I also try to fixed it and it works. Do you have any idea about it.diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 0e762fc3a529..2986c41c42a8 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c@@ -258,7 +258,7 @@ static void phy_sanitize_settings(struct phy_device *phydev) const struct link_capabilities *c; c = phy_caps_lookup(phydev->speed, phydev->duplex, phydev->supported, - false); + true);
This isn't the correct fix, as: + * When @exact is not set, we return either an exact match, or matching capabilities + * at lower speed, or the lowest matching speed, or NULL. So it isn't returning the exact match but apparently ignoring the duplex. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!