linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: hisilicon: unmap IO resources when cleanup
@ 2014-11-29  1:48 Sheng Yong
  2014-11-29  2:50 ` Orson Zhai
  0 siblings, 1 reply; 3+ messages in thread
From: Sheng Yong @ 2014-11-29  1:48 UTC (permalink / raw)
  To: linux-arm-kernel

Unmap IO resources if the driver initailization failed or the driver is
unmounted.

Signed-off-by: Sheng Yong <shengyong1@huawei.com>
---
 drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
index 0ffdcd3..3399ce6 100644
--- a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
+++ b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
@@ -917,26 +917,26 @@ static int hix5hd2_dev_probe(struct platform_device *pdev)
 	priv->ctrl_base = devm_ioremap_resource(dev, res);
 	if (IS_ERR(priv->ctrl_base)) {
 		ret = PTR_ERR(priv->ctrl_base);
-		goto out_free_netdev;
+		goto out_base;
 	}
 
 	priv->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(priv->clk)) {
 		netdev_err(ndev, "failed to get clk\n");
 		ret = -ENODEV;
-		goto out_free_netdev;
+		goto out_ctrl_base;
 	}
 
 	ret = clk_prepare_enable(priv->clk);
 	if (ret < 0) {
 		netdev_err(ndev, "failed to enable clk %d\n", ret);
-		goto out_free_netdev;
+		goto out_ctrl_base;
 	}
 
 	bus = mdiobus_alloc();
 	if (bus == NULL) {
 		ret = -ENOMEM;
-		goto out_free_netdev;
+		goto out_ctrl_base;
 	}
 
 	bus->priv = priv;
@@ -1019,6 +1019,10 @@ err_mdiobus:
 	mdiobus_unregister(bus);
 err_free_mdio:
 	mdiobus_free(bus);
+out_base:
+        iounmap(priv->base);
+out_ctrl_base:
+	iounmap(priv->ctrl_base);
 out_free_netdev:
 	free_netdev(ndev);
 
@@ -1038,6 +1042,8 @@ static int hix5hd2_dev_remove(struct platform_device *pdev)
 	hix5hd2_destroy_hw_desc_queue(priv);
 	of_node_put(priv->phy_node);
 	cancel_work_sync(&priv->tx_timeout_task);
+	iounmap(priv->base);
+	iounmap(priv->ctrl_base);
 	free_netdev(ndev);
 
 	return 0;
-- 
1.8.3.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-29 18:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-29  1:48 [PATCH] net: hisilicon: unmap IO resources when cleanup Sheng Yong
2014-11-29  2:50 ` Orson Zhai
2014-11-29 18:54   ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).