diff options
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.c | 7 |
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); |
1051 | out_deregister_fixed_link: | ||
1052 | if (of_phy_is_fixed_link(ofdev->dev.of_node)) | ||
1053 | of_phy_deregister_fixed_link(ofdev->dev.of_node); | ||
1051 | out_free_fpi: | 1054 | out_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 | } |