soc: qcom: apr: Add of_node_put() before return
authorWan Jiabing <wanjiabing@vivo.com>
Thu, 14 Oct 2021 08:30:17 +0000 (04:30 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:55 +0000 (19:16 +0100)
[ Upstream commit 72f1aa6205d84337b90b065f602a8fe190821781 ]

Fix following coccicheck warning:

./drivers/soc/qcom/apr.c:485:1-23: WARNING: Function
for_each_child_of_node should have of_node_put() before return

Early exits from for_each_child_of_node should decrement the
node reference counter.

Fixes: 834735662602 ("soc: qcom: apr: Add avs/audio tracking functionality")
Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211014083017.19714-1-wanjiabing@vivo.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/qcom/apr.c

index 475a57b..2e455d9 100644 (file)
@@ -321,12 +321,14 @@ static int of_apr_add_pd_lookups(struct device *dev)
                                                    1, &service_path);
                if (ret < 0) {
                        dev_err(dev, "pdr service path missing: %d\n", ret);
+                       of_node_put(node);
                        return ret;
                }
 
                pds = pdr_add_lookup(apr->pdr, service_name, service_path);
                if (IS_ERR(pds) && PTR_ERR(pds) != -EALREADY) {
                        dev_err(dev, "pdr add lookup failed: %ld\n", PTR_ERR(pds));
+                       of_node_put(node);
                        return PTR_ERR(pds);
                }
        }