If an error occurs after calling phy_connect_direct(), phy_disconnect() should be called, as already done in the remove function. Fixes: ed94493fb38a ("mv643xx_eth: convert to phylib") Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- This patch is speculative and compile tested only. Review with care. --- drivers/net/ethernet/marvell/mv643xx_eth.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index 0ab52c57c648..de6a683d7afc 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -3263,6 +3263,8 @@ static int mv643xx_eth_probe(struct platform_device *pdev) return 0; out: + if (dev->phydev) + phy_disconnect(dev->phydev); if (!IS_ERR(mp->clk)) clk_disable_unprepare(mp->clk); free_netdev(dev); -- 2.51.0