diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2026-03-07 04:48:03 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-03-07 04:48:03 +0300 |
| commit | 7a4d74676c31951c28b1df3dce4769d3acfb8e96 (patch) | |
| tree | 7369b9c60ee26ecfb5d17d1515e76bfdcb30f9ea | |
| parent | 0cc0c2e661af418bbf7074179ea5cfffc0a5c466 (diff) | |
| parent | ce2da643f00af3111f1fffe2adea8506592ef6e5 (diff) | |
| download | linux-7a4d74676c31951c28b1df3dce4769d3acfb8e96.tar.xz | |
Merge branch 'further-sja1105-phylink-link-replay-fixups'
Vladimir Oltean says:
====================
Further SJA1105 phylink link replay fixups
While I was playing around with the subsystem knowledge in Chris Mason's
review-prompts to see what LLMs would have needed to catch the bug
behind commit bfd264fbbbca ("net: dsa: sja1105: protect link replay
helpers against NULL phylink instance"), it flagged another issue
instead, which IMO is valid. This is being fixed in patch 2/2.
Patch 1/2 is preparatory reordering for that.
I haven't noticed any physical issues, it only has to do with the
soundness of the new call path introduced in January in commit
0b2edc531e0b ("net: dsa: sja1105: let phylink help with the replay of
link callbacks").
====================
Link: https://patch.msgid.link/20260304220900.3865120-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| -rw-r--r-- | drivers/net/dsa/sja1105/sja1105_main.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c index 94d17b06da40..c72c2bfdcffb 100644 --- a/drivers/net/dsa/sja1105/sja1105_main.c +++ b/drivers/net/dsa/sja1105/sja1105_main.c @@ -2339,14 +2339,13 @@ int sja1105_static_config_reload(struct sja1105_private *priv, goto out; } + rc = sja1105_reload_cbs(priv); + +out: dsa_switch_for_each_available_port(dp, ds) if (dp->pl) phylink_replay_link_end(dp->pl); - rc = sja1105_reload_cbs(priv); - if (rc < 0) - goto out; -out: mutex_unlock(&priv->mgmt_lock); mutex_unlock(&priv->fdb_lock); |
