Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ce98140 authored by Michael Grzeschik's avatar Michael Grzeschik Committed by David S. Miller
Browse files

net: macb: add of_phy_deregister_fixed_link to error paths



We add the call of_phy_deregister_fixed_link to all associated
error paths for memory clean up.

Signed-off-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e5c500eb
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -611,6 +611,8 @@ static int macb_mii_init(struct macb *bp)
err_out_unregister_bus:
err_out_unregister_bus:
	mdiobus_unregister(bp->mii_bus);
	mdiobus_unregister(bp->mii_bus);
err_out_free_mdiobus:
err_out_free_mdiobus:
	if (np && of_phy_is_fixed_link(np))
		of_phy_deregister_fixed_link(np);
	mdiobus_free(bp->mii_bus);
	mdiobus_free(bp->mii_bus);
err_out:
err_out:
	return err;
	return err;
@@ -3550,6 +3552,8 @@ static int macb_probe(struct platform_device *pdev)
err_out_unregister_mdio:
err_out_unregister_mdio:
	phy_disconnect(dev->phydev);
	phy_disconnect(dev->phydev);
	mdiobus_unregister(bp->mii_bus);
	mdiobus_unregister(bp->mii_bus);
	if (np && of_phy_is_fixed_link(np))
		of_phy_deregister_fixed_link(np);
	mdiobus_free(bp->mii_bus);
	mdiobus_free(bp->mii_bus);


	/* Shutdown the PHY if there is a GPIO reset */
	/* Shutdown the PHY if there is a GPIO reset */
@@ -3572,6 +3576,7 @@ static int macb_remove(struct platform_device *pdev)
{
{
	struct net_device *dev;
	struct net_device *dev;
	struct macb *bp;
	struct macb *bp;
	struct device_node *np = pdev->dev.of_node;


	dev = platform_get_drvdata(pdev);
	dev = platform_get_drvdata(pdev);


@@ -3580,6 +3585,8 @@ static int macb_remove(struct platform_device *pdev)
		if (dev->phydev)
		if (dev->phydev)
			phy_disconnect(dev->phydev);
			phy_disconnect(dev->phydev);
		mdiobus_unregister(bp->mii_bus);
		mdiobus_unregister(bp->mii_bus);
		if (np && of_phy_is_fixed_link(np))
			of_phy_deregister_fixed_link(np);
		dev->phydev = NULL;
		dev->phydev = NULL;
		mdiobus_free(bp->mii_bus);
		mdiobus_free(bp->mii_bus);