rtc: mxc: fix memory leak
authorAlexander Beregalov <a.beregalov@gmail.com>
Fri, 5 Mar 2010 21:44:19 +0000 (13:44 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 6 Mar 2010 19:26:46 +0000 (11:26 -0800)
Free pdata before exit.  Found by cppcheck.

[yuasa@linux-mips.org: add missing iounmap()]
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Reviewed-by: WANG Cong <xiyou.wangcong@gmail.com>
Acked-by: Daniel Mack <daniel@caiaq.de>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Cc Yoichi Yuasa <yuasa@linux-mips.org>
Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-mxc.c

index 6bd5072d4eb7f4056c226e7982972080fb4f18ff..8710f9415d98ce35a42757b6974065d80c784f2c 100644 (file)
@@ -396,8 +396,11 @@ static int __init mxc_rtc_probe(struct platform_device *pdev)
        pdata->ioaddr = ioremap(res->start, resource_size(res));
 
        clk = clk_get(&pdev->dev, "ckil");
-       if (IS_ERR(clk))
-               return PTR_ERR(clk);
+       if (IS_ERR(clk)) {
+               iounmap(pdata->ioaddr);
+               ret = PTR_ERR(clk);
+               goto exit_free_pdata;
+       }
 
        rate = clk_get_rate(clk);
        clk_put(clk);