Message ID | 20230907095521.14053-5-Julia.Lawall@inria.fr (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | add missing of_node_put | expand |
On Thu, 7 Sept 2023 at 11:55, Julia Lawall <Julia.Lawall@inria.fr> wrote: > > for_each_node_with_property performs an of_node_get on > each iteration, so a break out of the loop requires an > of_node_put. > > This was done using the Coccinelle semantic patch > iterators/for_each_child.cocci > > Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> Applied for next (by amending the change to pmdomain instead of genpd), thanks! Kind regards Uffe > > --- > drivers/genpd/ti/ti_sci_pm_domains.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff -u -p a/drivers/genpd/ti/ti_sci_pm_domains.c b/drivers/genpd/ti/ti_sci_pm_domains.c > --- a/drivers/genpd/ti/ti_sci_pm_domains.c > +++ b/drivers/genpd/ti/ti_sci_pm_domains.c > @@ -153,14 +153,18 @@ static int ti_sci_pm_domain_probe(struct > max_id = args.args[0]; > > pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); > - if (!pd) > + if (!pd) { > + of_node_put(np); > return -ENOMEM; > + } > > pd->pd.name = devm_kasprintf(dev, GFP_KERNEL, > "pd:%d", > args.args[0]); > - if (!pd->pd.name) > + if (!pd->pd.name) { > + of_node_put(np); > return -ENOMEM; > + } > > pd->pd.power_off = ti_sci_pd_power_off; > pd->pd.power_on = ti_sci_pd_power_on; >
diff -u -p a/drivers/genpd/ti/ti_sci_pm_domains.c b/drivers/genpd/ti/ti_sci_pm_domains.c --- a/drivers/genpd/ti/ti_sci_pm_domains.c +++ b/drivers/genpd/ti/ti_sci_pm_domains.c @@ -153,14 +153,18 @@ static int ti_sci_pm_domain_probe(struct max_id = args.args[0]; pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); - if (!pd) + if (!pd) { + of_node_put(np); return -ENOMEM; + } pd->pd.name = devm_kasprintf(dev, GFP_KERNEL, "pd:%d", args.args[0]); - if (!pd->pd.name) + if (!pd->pd.name) { + of_node_put(np); return -ENOMEM; + } pd->pd.power_off = ti_sci_pd_power_off; pd->pd.power_on = ti_sci_pd_power_on;
for_each_node_with_property performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. This was done using the Coccinelle semantic patch iterators/for_each_child.cocci Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> --- drivers/genpd/ti/ti_sci_pm_domains.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)