Message ID | E1tYhxp-001FHf-Ac@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | af10e092b77aaa11f056765d979e9be7e8276a3a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: phylink: always do a major config when attaching a SFP PHY | expand |
Hello: This patch was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 17 Jan 2025 08:44:25 +0000 you wrote: > Background: https://lore.kernel.org/r/20250107123615.161095-1-ericwouds@gmail.com > > Since adding negotiation of in-band capabilities, it is no longer > sufficient to just look at the MLO_AN_xxx mode and PHY interface to > decide whether to do a major configuration, since the result now > depends on the capabilities of the attaching PHY. > > [...] Here is the summary with links: - [net-next] net: phylink: always do a major config when attaching a SFP PHY https://git.kernel.org/netdev/net-next/c/af10e092b77a You are awesome, thank you!
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 66eea3f963d3..d130634d3bc7 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -3541,12 +3541,11 @@ static phy_interface_t phylink_choose_sfp_interface(struct phylink *pl, return interface; } -static void phylink_sfp_set_config(struct phylink *pl, - unsigned long *supported, - struct phylink_link_state *state) +static void phylink_sfp_set_config(struct phylink *pl, unsigned long *supported, + struct phylink_link_state *state, + bool changed) { u8 mode = MLO_AN_INBAND; - bool changed = false; phylink_dbg(pl, "requesting link mode %s/%s with support %*pb\n", phylink_an_mode_str(mode), phy_modes(state->interface), @@ -3623,7 +3622,7 @@ static int phylink_sfp_config_phy(struct phylink *pl, struct phy_device *phy) pl->link_port = pl->sfp_port; - phylink_sfp_set_config(pl, support, &config); + phylink_sfp_set_config(pl, support, &config, true); return 0; } @@ -3698,7 +3697,7 @@ static int phylink_sfp_config_optical(struct phylink *pl) pl->link_port = pl->sfp_port; - phylink_sfp_set_config(pl, pl->sfp_support, &config); + phylink_sfp_set_config(pl, pl->sfp_support, &config, false); return 0; }