Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1....@samsung.com>
---
 drivers/char/hw_random/nomadik-rng.c |   13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/char/hw_random/nomadik-rng.c 
b/drivers/char/hw_random/nomadik-rng.c
index 00e9d2d..9c85815 100644
--- a/drivers/char/hw_random/nomadik-rng.c
+++ b/drivers/char/hw_random/nomadik-rng.c
@@ -43,7 +43,7 @@ static int nmk_rng_probe(struct amba_device *dev, const 
struct amba_id *id)
        void __iomem *base;
        int ret;
 
-       rng_clk = clk_get(&dev->dev, NULL);
+       rng_clk = devm_clk_get(&dev->dev, NULL);
        if (IS_ERR(rng_clk)) {
                dev_err(&dev->dev, "could not get rng clock\n");
                ret = PTR_ERR(rng_clk);
@@ -56,33 +56,28 @@ static int nmk_rng_probe(struct amba_device *dev, const 
struct amba_id *id)
        if (ret)
                goto out_clk;
        ret = -ENOMEM;
-       base = ioremap(dev->res.start, resource_size(&dev->res));
+       base = devm_ioremap(&dev->dev, dev->res.start,
+                           resource_size(&dev->res));
        if (!base)
                goto out_release;
        nmk_rng.priv = (unsigned long)base;
        ret = hwrng_register(&nmk_rng);
        if (ret)
-               goto out_unmap;
+               goto out_release;
        return 0;
 
-out_unmap:
-       iounmap(base);
 out_release:
        amba_release_regions(dev);
 out_clk:
        clk_disable(rng_clk);
-       clk_put(rng_clk);
        return ret;
 }
 
 static int nmk_rng_remove(struct amba_device *dev)
 {
-       void __iomem *base = (void __iomem *)nmk_rng.priv;
        hwrng_unregister(&nmk_rng);
-       iounmap(base);
        amba_release_regions(dev);
        clk_disable(rng_clk);
-       clk_put(rng_clk);
        return 0;
 }
 
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to