Message ID | 3b71eca9ceb96a3525f4bb08bd1225536d691638.1511851763.git.viresh.kumar@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v4.4] PM / OPP: Add missing of_node_put(np) | expand |
On Tue, Nov 28, 2017 at 12:20:41PM +0530, Viresh Kumar wrote: > From: Tobias Jordan <Tobias.Jordan@elektrobit.com> > > 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) > Cc: 4.4 <stable@vger.kernel.org> # 4.4 > 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> > --- > drivers/base/power/opp/core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c > index b8e76f75073b..0b4190a1efaa 100644 > --- a/drivers/base/power/opp/core.c > +++ b/drivers/base/power/opp/core.c > @@ -1199,6 +1199,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np) > if (ret) { > dev_err(dev, "%s: Failed to add OPP, %d\n", __func__, > ret); > ++ of_node_put(np); I don't think you test-built this patch :(
On 28-11-17, 09:43, Greg KH wrote: > On Tue, Nov 28, 2017 at 12:20:41PM +0530, Viresh Kumar wrote: > > From: Tobias Jordan <Tobias.Jordan@elektrobit.com> > > > > 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) > > Cc: 4.4 <stable@vger.kernel.org> # 4.4 > > 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> > > --- > > drivers/base/power/opp/core.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c > > index b8e76f75073b..0b4190a1efaa 100644 > > --- a/drivers/base/power/opp/core.c > > +++ b/drivers/base/power/opp/core.c > > @@ -1199,6 +1199,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np) > > if (ret) { > > dev_err(dev, "%s: Failed to add OPP, %d\n", __func__, > > ret); > > ++ of_node_put(np); > > I don't think you test-built this patch :( I actually compile tested the 4.9 patch and found the function to be exactly same in 4.4 branch and skipped it being lazy. And the laziness always proves that it was a bad decision to skip compiling it :( Sorry for the ++ crap (It took me several minutes to see how your committed change is different from what I have sent) :( -- viresh
diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index b8e76f75073b..0b4190a1efaa 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -1199,6 +1199,7 @@ static int _of_add_opp_table_v2(struct device *dev, struct device_node *opp_np) if (ret) { dev_err(dev, "%s: Failed to add OPP, %d\n", __func__, ret); ++ of_node_put(np); goto free_table; } }