diff options
author | Miaoqian Lin <linmq006@gmail.com> | 2022-06-06 10:42:52 +0400 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2022-06-30 22:03:58 -0500 |
commit | e6e0951414a314e7db3e9e24fd924b3e15515288 (patch) | |
tree | c20ddbfd031250bfdb157726f7f5e68eca093fa0 /drivers/soc | |
parent | a3e7259f9ebe04054dc202b9b9f887abf3e4b12a (diff) | |
download | linux-next-e6e0951414a314e7db3e9e24fd924b3e15515288.tar.gz |
soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
Every iteration of for_each_available_child_of_node() decrements
the reference count of the previous node.
When breaking early from a for_each_available_child_of_node() loop,
we need to explicitly call of_node_put() on the child node.
Add missing of_node_put() to avoid refcount leak.
Fixes: 05589b30b21a ("soc: qcom: Extend AOSS QMP driver to support resources that are used to wake up the SoC.")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220606064252.42595-1-linmq006@gmail.com
Diffstat (limited to 'drivers/soc')
-rw-r--r-- | drivers/soc/qcom/qcom_aoss.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/soc/qcom/qcom_aoss.c b/drivers/soc/qcom/qcom_aoss.c index a59bb34e5eba..18c856056475 100644 --- a/drivers/soc/qcom/qcom_aoss.c +++ b/drivers/soc/qcom/qcom_aoss.c @@ -399,8 +399,10 @@ static int qmp_cooling_devices_register(struct qmp *qmp) continue; ret = qmp_cooling_device_add(qmp, &qmp->cooling_devs[count++], child); - if (ret) + if (ret) { + of_node_put(child); goto unroll; + } } if (!count) |