On Fri, Mar 01, 2019 at 11:54:24AM +0100, Jose Abreu wrote: > +static inline int phy_update_link(struct phy_device *phydev) > +{ > + if (!phydev->drv) > + return -EIO; > + > + if (phydev->drv->read_status) > + return phydev->drv->read_status(phydev); > + else if (phydev->is_c45) > + return gen10g_read_status(phydev); > + else > + return genphy_update_link(phydev); > +}
Hi Jose The asymmetry here could be an issue. We might fall into the trap that a c45 PHY has the full state in phydev updated, were as a c22 only has the link updated. Somebody testing on C45 might miss a bug for a C22 device. Maybe this should be called phy_read_state(), and calls genphy_read_status() not genphy_update_link(). Andrew