aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c')
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
index 34843c155420..d9f3a480ca1b 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
@@ -967,7 +967,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
967 err = clk_prepare_enable(clk); 967 err = clk_prepare_enable(clk);
968 if (err) { 968 if (err) {
969 ret = err; 969 ret = err;
970 goto out_free_fpi; 970 goto out_deregister_fixed_link;
971 } 971 }
972 fpi->clk_per = clk; 972 fpi->clk_per = clk;
973 } 973 }
@@ -1048,6 +1048,9 @@ out_put:
1048 of_node_put(fpi->phy_node); 1048 of_node_put(fpi->phy_node);
1049 if (fpi->clk_per) 1049 if (fpi->clk_per)
1050 clk_disable_unprepare(fpi->clk_per); 1050 clk_disable_unprepare(fpi->clk_per);
1051out_deregister_fixed_link:
1052 if (of_phy_is_fixed_link(ofdev->dev.of_node))
1053 of_phy_deregister_fixed_link(ofdev->dev.of_node);
1051out_free_fpi: 1054out_free_fpi:
1052 kfree(fpi); 1055 kfree(fpi);
1053 return ret; 1056 return ret;
@@ -1066,6 +1069,8 @@ static int fs_enet_remove(struct platform_device *ofdev)
1066 of_node_put(fep->fpi->phy_node); 1069 of_node_put(fep->fpi->phy_node);
1067 if (fep->fpi->clk_per) 1070 if (fep->fpi->clk_per)
1068 clk_disable_unprepare(fep->fpi->clk_per); 1071 clk_disable_unprepare(fep->fpi->clk_per);
1072 if (of_phy_is_fixed_link(ofdev->dev.of_node))
1073 of_phy_deregister_fixed_link(ofdev->dev.of_node);
1069 free_netdev(ndev); 1074 free_netdev(ndev);
1070 return 0; 1075 return 0;
1071} 1076}