int phylink_ethtool_nway_reset(struct phylink *pl) { int ret = 0; WARN_ON(!lockdep_rtnl_is_held()); if (pl->phydev) ret = phy_restart_aneg(pl->phydev); phylink_mac_an_restart(pl); return ret; }
/** * phylink_ethtool_nway_reset() - restart negotiation * @pl: a pointer to a &struct phylink returned from phylink_create() * * Restart negotiation for the phylink instance specified by @pl. This will * cause any attached phy to restart negotiation with the link partner, and * if the MAC is in a BaseX mode, the MAC will also be requested to restart * negotiation. * * Returns zero on success, or negative error code. */ int phylink_ethtool_nway_reset(struct phylink *pl) { int ret = 0; ASSERT_RTNL(); if (pl->phydev) ret = phy_restart_aneg(pl->phydev); phylink_mac_an_restart(pl); return ret; }