diff options
Diffstat (limited to 'drivers/net/ethernet/freescale/gianfar.c')
-rw-r--r-- | drivers/net/ethernet/freescale/gianfar.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index 409210413f5d..756f7e763d5f 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c | |||
@@ -1312,6 +1312,7 @@ static void gfar_init_addr_hash_table(struct gfar_private *priv) | |||
1312 | */ | 1312 | */ |
1313 | static int gfar_probe(struct platform_device *ofdev) | 1313 | static int gfar_probe(struct platform_device *ofdev) |
1314 | { | 1314 | { |
1315 | struct device_node *np = ofdev->dev.of_node; | ||
1315 | struct net_device *dev = NULL; | 1316 | struct net_device *dev = NULL; |
1316 | struct gfar_private *priv = NULL; | 1317 | struct gfar_private *priv = NULL; |
1317 | int err = 0, i; | 1318 | int err = 0, i; |
@@ -1465,6 +1466,8 @@ static int gfar_probe(struct platform_device *ofdev) | |||
1465 | return 0; | 1466 | return 0; |
1466 | 1467 | ||
1467 | register_fail: | 1468 | register_fail: |
1469 | if (of_phy_is_fixed_link(np)) | ||
1470 | of_phy_deregister_fixed_link(np); | ||
1468 | unmap_group_regs(priv); | 1471 | unmap_group_regs(priv); |
1469 | gfar_free_rx_queues(priv); | 1472 | gfar_free_rx_queues(priv); |
1470 | gfar_free_tx_queues(priv); | 1473 | gfar_free_tx_queues(priv); |
@@ -1477,11 +1480,16 @@ register_fail: | |||
1477 | static int gfar_remove(struct platform_device *ofdev) | 1480 | static int gfar_remove(struct platform_device *ofdev) |
1478 | { | 1481 | { |
1479 | struct gfar_private *priv = platform_get_drvdata(ofdev); | 1482 | struct gfar_private *priv = platform_get_drvdata(ofdev); |
1483 | struct device_node *np = ofdev->dev.of_node; | ||
1480 | 1484 | ||
1481 | of_node_put(priv->phy_node); | 1485 | of_node_put(priv->phy_node); |
1482 | of_node_put(priv->tbi_node); | 1486 | of_node_put(priv->tbi_node); |
1483 | 1487 | ||
1484 | unregister_netdev(priv->ndev); | 1488 | unregister_netdev(priv->ndev); |
1489 | |||
1490 | if (of_phy_is_fixed_link(np)) | ||
1491 | of_phy_deregister_fixed_link(np); | ||
1492 | |||
1485 | unmap_group_regs(priv); | 1493 | unmap_group_regs(priv); |
1486 | gfar_free_rx_queues(priv); | 1494 | gfar_free_rx_queues(priv); |
1487 | gfar_free_tx_queues(priv); | 1495 | gfar_free_tx_queues(priv); |