Messages in this thread | | | Subject | Re: [PATCH] EDAC, altera: Add missing of_node_put() | From | Thor Thayer <> | Date | Thu, 14 Feb 2019 10:15:20 -0600 |
| |
Hi,
On 2/14/19 12:39 AM, Huang Zijiang wrote: > 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> > --- > drivers/edac/altera_edac.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c > index c89d82a..1bcd778 100644 > --- a/drivers/edac/altera_edac.c > +++ b/drivers/edac/altera_edac.c > @@ -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)) { >
Yes, I missed the error path. I mistakingly thought of_node_put(np_eccmgr) would catch the exit of both branches but I declared sysmgr_np instead of re-using np_eccmgr. I'll clean that up in a separate patch (actually this code will disappear when my combined sysmgr patchset is accepted upstream).
Thanks!
Reviewed-by: Thor Thayer <thor.thayer@linux.intel.com>
| |