summaryrefslogtreecommitdiff
path: root/drivers/clk/tegra/clk-emc.c
diff options
context:
space:
mode:
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>2016-01-24 18:15:20 +0300
committerThierry Reding <treding@nvidia.com>2016-02-02 17:49:28 +0300
commit047d6d8401c2d8f59ae5f478486096c13147ddf7 (patch)
tree4862c9333cbae80a40aae1db21498507991dbc8e /drivers/clk/tegra/clk-emc.c
parent442f53fb1be44c00263ebb8e7c2eff19dd019037 (diff)
downloadlinux-047d6d8401c2d8f59ae5f478486096c13147ddf7.tar.xz
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>
Diffstat (limited to 'drivers/clk/tegra/clk-emc.c')
-rw-r--r--drivers/clk/tegra/clk-emc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/clk/tegra/clk-emc.c b/drivers/clk/tegra/clk-emc.c
index e1fe8f35d45c..74e7544f861b 100644
--- a/drivers/clk/tegra/clk-emc.c
+++ b/drivers/clk/tegra/clk-emc.c
@@ -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;
}