PM / OPP: Add missing of_node_put(np)
authorTobias Jordan <Tobias.Jordan@elektrobit.com>
Wed, 4 Oct 2017 06:05:03 +0000 (11:35 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Nov 2017 08:40:41 +0000 (08:40 +0000)
commit 7978db344719dab1e56d05e6fc04aaaddcde0a5e upstream.

The for_each_available_child_of_node() loop in _of_add_opp_table_v2()
doesn't drop the reference to "np" on errors. Fix that.

Fixes: 274659029c9d (PM / OPP: Add support to parse "operating-points-v2" bindings)
Signed-off-by: Tobias Jordan <Tobias.Jordan@elektrobit.com>
[ VK: Improved commit log. ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/power/opp/of.c

index 0b718886479bd539687e709583543e0e62eea332..87509cb69f792308abd8665d444ad86031457eba 100644 (file)
@@ -397,6 +397,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np)
                        dev_err(dev, "%s: Failed to add OPP, %d\n", __func__,
                                ret);
                        _dev_pm_opp_remove_table(opp_table, dev, false);
+                       of_node_put(np);
                        goto put_opp_table;
                }
        }