drivers/rtc/rtc-pl030.c: use devm_kzalloc() instead of kmalloc()
authorSangjung Woo <sangjung.woo@samsung.com>
Tue, 12 Nov 2013 23:11:02 +0000 (15:11 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 03:09:31 +0000 (12:09 +0900)
In order to be free automatically and make the cleanup paths more simple,
use devm_kzalloc() instead of kmalloc().

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
Cc: Joe Perches <joe@perches.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-pl030.c

index a804f758ac6dd9684c14b1a1fd44219c2b3325e1..f85a1a93e669f9e14d4f68ab1a7040662eb60804 100644 (file)
@@ -106,7 +106,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
        if (ret)
                goto err_req;
 
-       rtc = kmalloc(sizeof(*rtc), GFP_KERNEL);
+       rtc = devm_kzalloc(&dev->dev, sizeof(*rtc), GFP_KERNEL);
        if (!rtc) {
                ret = -ENOMEM;
                goto err_rtc;
@@ -115,7 +115,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
        rtc->base = ioremap(dev->res.start, resource_size(&dev->res));
        if (!rtc->base) {
                ret = -ENOMEM;
-               goto err_map;
+               goto err_rtc;
        }
 
        __raw_writel(0, rtc->base + RTC_CR);
@@ -141,8 +141,6 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
        free_irq(dev->irq[0], rtc);
  err_irq:
        iounmap(rtc->base);
- err_map:
-       kfree(rtc);
  err_rtc:
        amba_release_regions(dev);
  err_req:
@@ -158,7 +156,6 @@ static int pl030_remove(struct amba_device *dev)
        free_irq(dev->irq[0], rtc);
        rtc_device_unregister(rtc->rtc);
        iounmap(rtc->base);
-       kfree(rtc);
        amba_release_regions(dev);
 
        return 0;