This set of patches fixes issues related to logging. First it delete old
code that is no longer used in stmmac_mdio_register(). Then, it fixes a
crash that happens when phydev->drv is NULL and phy_attached_info() is
called prior phy_driver is binded to phydev.
Changes in v2:
- Fixed wording in commit message
- "commit" not needed in the "Fixes" tag
Romain Perier (2):
net: stmmac: Delete dead code for MDIO registration
net: phy: Don't use drv when it is NULL in phy_attached_print
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 16 ----------------
drivers/net/phy/phy_device.c | 13 +++++++++++--
2 files changed, 11 insertions(+), 18 deletions(-)
--
2.11.0
This code is no longer used, the logging function was changed by commit
fbca164776e4 ("net: stmmac: Use the right logging functi").
Fixes: fbca164776e4 ("net: stmmac: Use the right logging functi")
Signed-off-by: Romain Perier <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 16 ----------------
1 file changed, 16 deletions(-)
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 <redacted>
---
drivers/net/phy/phy_device.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
From: Andrew Lunn <andrew@lunn.ch> Date: 2017-08-21 14:24:31
On Mon, Aug 21, 2017 at 01:45:30PM +0200, Romain Perier wrote:
quoted hunk
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 <redacted>
---
drivers/net/phy/phy_device.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
This code is no longer used, the logging function was changed by commit
fbca164776e4 ("net: stmmac: Use the right logging functi").
Fixes: fbca164776e4 ("net: stmmac: Use the right logging functi")
Signed-off-by: Romain Perier <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 16 ----------------
1 file changed, 16 deletions(-)
@@ -248,9 +248,6 @@ int stmmac_mdio_register(struct net_device *ndev)found=0;for(addr=0;addr<PHY_MAX_ADDR;addr++){structphy_device*phydev=mdiobus_get_phy(new_bus,addr);-intact=0;-charirq_num[4];-char*irq_str;if(!phydev)continue;
@@ -273,19 +270,6 @@ int stmmac_mdio_register(struct net_device *ndev)if(priv->plat->phy_addr==-1)priv->plat->phy_addr=addr;-act=(priv->plat->phy_addr==addr);-switch(phydev->irq){-casePHY_POLL:-irq_str="POLL";-break;-casePHY_IGNORE_INTERRUPT:-irq_str="IGNORE";-break;-default:-sprintf(irq_num,"%d",phydev->irq);-irq_str=irq_num;-break;-}
I was actually just looking into moving these prints to
phy_attached_info(), since it is useful to know whether the interrupt is
POLL, IGNORE, or valid. Can you move that there? Then you can really
migrate over phy_attached_info() with no information loss.
Thanks!
--
Florian
On Mon, Aug 21, 2017 at 01:45:30PM +0200, Romain Perier wrote:
quoted
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 <redacted>
---
drivers/net/phy/phy_device.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
Agreed, just use Andrew's earlier suggestion of checking phydev->drv
validity.
We don't have an equivalent of "unregistered" in the PHY layer, but
"unbound" seems like it could be what we want here.
Thanks
--
Florian
Hello,
Le 22/08/2017 à 02:45, Florian Fainelli a écrit :
On 08/21/2017 04:45 AM, Romain Perier wrote:
quoted
This code is no longer used, the logging function was changed by commit
fbca164776e4 ("net: stmmac: Use the right logging functi").
Fixes: fbca164776e4 ("net: stmmac: Use the right logging functi")
Signed-off-by: Romain Perier <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 16 ----------------
1 file changed, 16 deletions(-)
@@ -248,9 +248,6 @@ int stmmac_mdio_register(struct net_device *ndev)found=0;for(addr=0;addr<PHY_MAX_ADDR;addr++){structphy_device*phydev=mdiobus_get_phy(new_bus,addr);-intact=0;-charirq_num[4];-char*irq_str;if(!phydev)continue;
@@ -273,19 +270,6 @@ int stmmac_mdio_register(struct net_device *ndev)if(priv->plat->phy_addr==-1)priv->plat->phy_addr=addr;-act=(priv->plat->phy_addr==addr);-switch(phydev->irq){-casePHY_POLL:-irq_str="POLL";-break;-casePHY_IGNORE_INTERRUPT:-irq_str="IGNORE";-break;-default:-sprintf(irq_num,"%d",phydev->irq);-irq_str=irq_num;-break;-}
I was actually just looking into moving these prints to
phy_attached_info(), since it is useful to know whether the interrupt is
POLL, IGNORE, or valid. Can you move that there? Then you can really
migrate over phy_attached_info() with no information loss.
Thanks!