EDAC, altera: Add missing of_node_put()
authorHuang Zijiang <huang.zijiang@zte.com.cn>
Thu, 14 Feb 2019 06:39:07 +0000 (14:39 +0800)
committerBorislav Petkov <bp@suse.de>
Fri, 15 Feb 2019 11:02:47 +0000 (12:02 +0100)
The call to of_parse_phandle() returns a node pointer with refcount
incremented thus it must be explicitly decremented here after the last
usage.

Signed-off-by: Huang Zijiang <huang.zijiang@zte.com.cn>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Thor Thayer <thor.thayer@linux.intel.com>
Cc: James Morse <james.morse@arm.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: wang.yi59@zte.com.cn
Link: https://lkml.kernel.org/r/1550126347-27984-1-git-send-email-huang.zijiang@zte.com.cn
drivers/edac/altera_edac.c

index c89d82aa277601d67ae673097eae2c9a8d6f997a..98e0bd8d9f50bd52f02561752a7b5c87e88b97a7 100644 (file)
@@ -1046,14 +1046,17 @@ altr_init_a10_ecc_block(struct device_node *np, u32 irq_mask,
                        return -ENODEV;
                }
 
-               if (of_address_to_resource(sysmgr_np, 0, &res))
+               if (of_address_to_resource(sysmgr_np, 0, &res)) {
+                       of_node_put(sysmgr_np);
                        return -ENOMEM;
+               }
 
                /* Need physical address for SMCC call */
                base = res.start;
 
                ecc_mgr_map = regmap_init(NULL, NULL, (void *)base,
                                          &s10_sdram_regmap_cfg);
+               of_node_put(sysmgr_np);
        }
        of_node_put(np_eccmgr);
        if (IS_ERR(ecc_mgr_map)) {