Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwrng: nomadik - Use devm_*() functions

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

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Jingoo Han and committed by
Herbert Xu
1655c240 0c0aa844

+4 -9
+4 -9
drivers/char/hw_random/nomadik-rng.c
··· 44 44 void __iomem *base; 45 45 int ret; 46 46 47 - rng_clk = clk_get(&dev->dev, NULL); 47 + rng_clk = devm_clk_get(&dev->dev, NULL); 48 48 if (IS_ERR(rng_clk)) { 49 49 dev_err(&dev->dev, "could not get rng clock\n"); 50 50 ret = PTR_ERR(rng_clk); ··· 57 57 if (ret) 58 58 goto out_clk; 59 59 ret = -ENOMEM; 60 - base = ioremap(dev->res.start, resource_size(&dev->res)); 60 + base = devm_ioremap(&dev->dev, dev->res.start, 61 + resource_size(&dev->res)); 61 62 if (!base) 62 63 goto out_release; 63 64 nmk_rng.priv = (unsigned long)base; 64 65 ret = hwrng_register(&nmk_rng); 65 66 if (ret) 66 - goto out_unmap; 67 + goto out_release; 67 68 return 0; 68 69 69 - out_unmap: 70 - iounmap(base); 71 70 out_release: 72 71 amba_release_regions(dev); 73 72 out_clk: 74 73 clk_disable(rng_clk); 75 - clk_put(rng_clk); 76 74 return ret; 77 75 } 78 76 79 77 static int nmk_rng_remove(struct amba_device *dev) 80 78 { 81 - void __iomem *base = (void __iomem *)nmk_rng.priv; 82 79 hwrng_unregister(&nmk_rng); 83 - iounmap(base); 84 80 amba_release_regions(dev); 85 81 clk_disable(rng_clk); 86 - clk_put(rng_clk); 87 82 return 0; 88 83 } 89 84