On Tue, Jul 23, 2019 at 10:17:02PM +0700, Arseny Solokha wrote: > SFP modules connected using the SGMII interface have their own PHYs which > are handled by the struct phylink's phydev field. After commit ce0aa27ff3f6 > ("sfp: add sfp-bus to bridge between network devices and sfp cages") an > sfp-bus attached to the same phylink also gets control over a PHY in an SFP > module which is actually the same PHY managed by phylink itself. This > results in WARNs during network interface bringup and shutdown when a > copper SFP module is connected, as phy_start() and phy_stop() are called > twice in a row for the same phy_device: >... > So, skip explicit calls to phy_start() and phy_stop() when phylink has just > enabled or disabled an attached SFP module.
I'd prefer if we re-ordered these so phy_start() happens before sfp_upstream_start() and the reverse for the stop calls. pl->phydev won't be set at these points, so the calls will be no-ops. (The reason is when we support mac--phy--sfp setups, having the phy_start() and phy_stop() here are still necessary.) -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up