Message ID | 20171108085635.2742-2-m.grzeschik@pengutronix.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: macb: add error handling on probe and | expand |
On 08/11/2017 at 09:56, Michael Grzeschik wrote: > We add the call of_phy_deregister_fixed_link to all associated > error paths for memory clean up. > > Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> > --- > v2: removed extra parenthesis > > drivers/net/ethernet/cadence/macb_main.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > index 6df2cad61647a..b7846d6e9234e 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -611,6 +611,8 @@ static int macb_mii_init(struct macb *bp) > err_out_unregister_bus: > mdiobus_unregister(bp->mii_bus); > err_out_free_mdiobus: > + if (np && of_phy_is_fixed_link(np)) > + of_phy_deregister_fixed_link(np); > mdiobus_free(bp->mii_bus); > err_out: > return err; > @@ -3552,6 +3554,8 @@ static int macb_probe(struct platform_device *pdev) > err_out_unregister_mdio: > phy_disconnect(dev->phydev); > mdiobus_unregister(bp->mii_bus); > + if (np && of_phy_is_fixed_link(np)) > + of_phy_deregister_fixed_link(np); > mdiobus_free(bp->mii_bus); > > /* Shutdown the PHY if there is a GPIO reset */ > @@ -3574,6 +3578,7 @@ static int macb_remove(struct platform_device *pdev) > { > struct net_device *dev; > struct macb *bp; > + struct device_node *np = pdev->dev.of_node; > > dev = platform_get_drvdata(pdev); > > @@ -3582,6 +3587,8 @@ static int macb_remove(struct platform_device *pdev) > if (dev->phydev) > phy_disconnect(dev->phydev); > mdiobus_unregister(bp->mii_bus); > + if (np && of_phy_is_fixed_link(np)) > + of_phy_deregister_fixed_link(np); > dev->phydev = NULL; > mdiobus_free(bp->mii_bus); > >
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 6df2cad61647a..b7846d6e9234e 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -611,6 +611,8 @@ static int macb_mii_init(struct macb *bp) err_out_unregister_bus: mdiobus_unregister(bp->mii_bus); err_out_free_mdiobus: + if (np && of_phy_is_fixed_link(np)) + of_phy_deregister_fixed_link(np); mdiobus_free(bp->mii_bus); err_out: return err; @@ -3552,6 +3554,8 @@ static int macb_probe(struct platform_device *pdev) err_out_unregister_mdio: phy_disconnect(dev->phydev); mdiobus_unregister(bp->mii_bus); + if (np && of_phy_is_fixed_link(np)) + of_phy_deregister_fixed_link(np); mdiobus_free(bp->mii_bus); /* Shutdown the PHY if there is a GPIO reset */ @@ -3574,6 +3578,7 @@ static int macb_remove(struct platform_device *pdev) { struct net_device *dev; struct macb *bp; + struct device_node *np = pdev->dev.of_node; dev = platform_get_drvdata(pdev); @@ -3582,6 +3587,8 @@ static int macb_remove(struct platform_device *pdev) if (dev->phydev) phy_disconnect(dev->phydev); mdiobus_unregister(bp->mii_bus); + if (np && of_phy_is_fixed_link(np)) + of_phy_deregister_fixed_link(np); dev->phydev = NULL; mdiobus_free(bp->mii_bus);
We add the call of_phy_deregister_fixed_link to all associated error paths for memory clean up. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> --- v2: removed extra parenthesis drivers/net/ethernet/cadence/macb_main.c | 7 +++++++ 1 file changed, 7 insertions(+)