clk: tegra: Add missing of_node_put()
for_each_child_of_node() performs an of_node_get() on each iteration, so before breaking out of the loop an of_node_put() is required. Found using Coccinelle. The semantic patch used for this is as follows: // <smpl> @@ expression e; local idexpression child; @@ for_each_child_of_node(root, child) { ... when != of_node_put(child) when != e = child ( return child; | + of_node_put(child); ? return ...; ) ... } // </smpl> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
442f53fb1b
commit
047d6d8401
1 changed files with 4 additions and 2 deletions
|
@ -450,8 +450,10 @@ static int load_timings_from_dt(struct tegra_clk_emc *tegra,
|
|||
struct emc_timing *timing = tegra->timings + (i++);
|
||||
|
||||
err = load_one_timing_from_dt(tegra, timing, child);
|
||||
if (err)
|
||||
if (err) {
|
||||
of_node_put(child);
|
||||
return err;
|
||||
}
|
||||
|
||||
timing->ram_code = ram_code;
|
||||
}
|
||||
|
@ -499,9 +501,9 @@ struct clk *tegra_clk_register_emc(void __iomem *base, struct device_node *np,
|
|||
* fuses until the apbmisc driver is loaded.
|
||||
*/
|
||||
err = load_timings_from_dt(tegra, node, node_ram_code);
|
||||
of_node_put(node);
|
||||
if (err)
|
||||
return ERR_PTR(err);
|
||||
of_node_put(node);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue