mtd: mpc5121_nfc: fix memory leak on error path
authorJulia Lawall <julia@diku.dk>
Sun, 29 Aug 2010 09:52:42 +0000 (11:52 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sun, 24 Oct 2010 22:40:22 +0000 (23:40 +0100)
Add a call to of_node_put in the error handling code following a call to
of_find_compatible_node.

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/mpc5121_nfc.c

index df0c1da4ff49b5b36357bb8a6ccbea9c420728e5..f4610bc7ccd09ec2708ce3c9ccded5e98544810f 100644 (file)
@@ -568,6 +568,7 @@ static int mpc5121_nfc_read_hw_config(struct mtd_info *mtd)
        uint rcw_width;
        uint rcwh;
        uint romloc, ps;
+       int ret = 0;
 
        rmnode = of_find_compatible_node(NULL, NULL, "fsl,mpc5121-reset");
        if (!rmnode) {
@@ -579,7 +580,8 @@ static int mpc5121_nfc_read_hw_config(struct mtd_info *mtd)
        rm = of_iomap(rmnode, 0);
        if (!rm) {
                dev_err(prv->dev, "Error mapping reset module node!\n");
-               return -EBUSY;
+               ret = -EBUSY;
+               goto out;
        }
 
        rcwh = in_be32(&rm->rcwhr);
@@ -628,8 +630,9 @@ static int mpc5121_nfc_read_hw_config(struct mtd_info *mtd)
                                rcw_width * 8, rcw_pagesize,
                                rcw_sparesize);
        iounmap(rm);
+out:
        of_node_put(rmnode);
-       return 0;
+       return ret;
 }
 
 /* Free driver resources */