On Mon, Aug 21, 2017 at 01:45:30PM +0200, Romain Perier wrote: > Currently, if this logging function is used prior the phy driver is > bound to the phy device (that is usually done from .ndo_open), > 'phydev->drv' might be NULL, resulting in a kernel crash. That is > typically the case in the stmmac driver, info about the phy is displayed > during the registration of the MDIO bus, and then genphy driver is bound > to this phydev when .ndo_open is called. > > This commit fixes the issue by using the right genphy driver, when > phydev->drv is NULL. > > Fixes: fbca164776e4 ("net: stmmac: Use the right logging functi") > Signed-off-by: Romain Perier <romain.per...@collabora.com> > --- > drivers/net/phy/phy_device.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c > index 1790f7fec125..6af6dc6dfeaf 100644 > --- a/drivers/net/phy/phy_device.c > +++ b/drivers/net/phy/phy_device.c > @@ -864,15 +864,24 @@ EXPORT_SYMBOL(phy_attached_info); > #define ATTACHED_FMT "attached PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)" > void phy_attached_print(struct phy_device *phydev, const char *fmt, ...) > { > + struct phy_driver *drv = phydev->drv; > + > + if (!drv) { > + if (phydev->is_c45) > + drv = &genphy_10g_driver; > + else > + drv = &genphy_driver; > + } > +
As i said in my comment to v1, i don't like this. Andrew