OPP: call of_node_put() on error path in _bandwidth_supported()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 6 Apr 2022 06:40:14 +0000 (09:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:23:13 +0000 (10:23 +0200)
[ Upstream commit 907ed123b9d096c73e9361f6cd4097f0691497f2 ]

This code does not call of_node_put(opp_np) if of_get_next_available_child()
returns NULL.  But it should.

Fixes: 45679f9b508f ("opp: Don't parse icc paths unnecessarily")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/opp/of.c

index c32ae74..3028353 100644 (file)
@@ -437,11 +437,11 @@ static int _bandwidth_supported(struct device *dev, struct opp_table *opp_table)
 
        /* Checking only first OPP is sufficient */
        np = of_get_next_available_child(opp_np, NULL);
+       of_node_put(opp_np);
        if (!np) {
                dev_err(dev, "OPP table empty\n");
                return -EINVAL;
        }
-       of_node_put(opp_np);
 
        prop = of_find_property(np, "opp-peak-kBps", NULL);
        of_node_put(np);