From: Wen Yang <wen.yang99@zte.com.cn>
To: linux-kernel@vger.kernel.org
Cc: wang.yi59@zte.com.cn, Wen Yang <wen.yang99@zte.com.cn>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Viresh Kumar <viresh.kumar@linaro.org>,
linux-pm@vger.kernel.org
Subject: [PATCH 3/7] cpufreq: kirkwood: fix possible object reference leak
Date: Mon, 1 Apr 2019 09:37:50 +0800 [thread overview]
Message-ID: <1554082674-2049-4-git-send-email-wen.yang99@zte.com.cn> (raw)
In-Reply-To: <1554082674-2049-1-git-send-email-wen.yang99@zte.com.cn>
The call to of_get_child_by_name returns a node pointer with refcount
incremented thus it must be explicitly decremented after the last
usage.
Detected by coccinelle with the following warnings:
./drivers/cpufreq/kirkwood-cpufreq.c:127:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 118, but without a corresponding object release within this function.
./drivers/cpufreq/kirkwood-cpufreq.c:133:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 118, but without a corresponding object release within this function.
and also do some cleanup:
- of_node_put(np);
- np = NULL;
...
of_node_put(np);
Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/cpufreq/kirkwood-cpufreq.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/drivers/cpufreq/kirkwood-cpufreq.c b/drivers/cpufreq/kirkwood-cpufreq.c
index c2dd43f..8d63a6dc 100644
--- a/drivers/cpufreq/kirkwood-cpufreq.c
+++ b/drivers/cpufreq/kirkwood-cpufreq.c
@@ -124,13 +124,14 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev)
priv.cpu_clk = of_clk_get_by_name(np, "cpu_clk");
if (IS_ERR(priv.cpu_clk)) {
dev_err(priv.dev, "Unable to get cpuclk\n");
- return PTR_ERR(priv.cpu_clk);
+ err = PTR_ERR(priv.cpu_clk);
+ goto out_node;
}
err = clk_prepare_enable(priv.cpu_clk);
if (err) {
dev_err(priv.dev, "Unable to prepare cpuclk\n");
- return err;
+ goto out_node;
}
kirkwood_freq_table[0].frequency = clk_get_rate(priv.cpu_clk) / 1000;
@@ -161,20 +162,22 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev)
goto out_ddr;
}
- of_node_put(np);
- np = NULL;
-
err = cpufreq_register_driver(&kirkwood_cpufreq_driver);
- if (!err)
- return 0;
+ if (err) {
+ dev_err(priv.dev, "Failed to register cpufreq driver\n");
+ goto out_powersave;
+ }
- dev_err(priv.dev, "Failed to register cpufreq driver\n");
+ of_node_put(np);
+ return 0;
+out_powersave:
clk_disable_unprepare(priv.powersave_clk);
out_ddr:
clk_disable_unprepare(priv.ddr_clk);
out_cpu:
clk_disable_unprepare(priv.cpu_clk);
+out_node:
of_node_put(np);
return err;
--
2.9.5
next prev parent reply other threads:[~2019-04-01 1:38 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-01 1:37 [PATCH 0/7] fix possible object reference leaks in cpufreq Wen Yang
2019-04-01 1:37 ` [PATCH 1/7] cpufreq: ap806: fix possible object reference leak Wen Yang
2019-04-02 13:54 ` [1/7] cpufreq: ap806: Checking implementation of armada_8k_cpufreq_init() Markus Elfring
2019-04-02 13:54 ` Markus Elfring
2019-04-08 10:21 ` [PATCH 1/7] cpufreq: ap806: fix possible object reference leak Viresh Kumar
2019-04-01 1:37 ` [PATCH 2/7] cpufreq: imx6q: " Wen Yang
2019-04-01 1:37 ` Wen Yang [this message]
2019-04-03 13:17 ` [3/7] cpufreq: kirkwood: " Markus Elfring
2019-04-01 1:37 ` [PATCH 4/7] cpufreq: maple: " Wen Yang
2019-04-03 13:50 ` [4/7] cpufreq: maple: Checking implementation of maple_cpufreq_init() Markus Elfring
2019-04-01 1:37 ` [PATCH 5/7] cpufreq/pasemi: fix possible object reference leak Wen Yang
2019-04-03 14:23 ` [5/7] cpufreq/pasemi: Checking implementation of pas_cpufreq_cpu_init() Markus Elfring
2019-04-03 15:31 ` Dan Carpenter
2019-04-01 1:37 ` [PATCH 6/7] cpufreq: pmac32: fix possible object reference leak Wen Yang
2019-04-01 1:37 ` [PATCH 7/7] cpufreq: ppc_cbe: " Wen Yang
2019-04-02 10:43 ` Markus Elfring
2019-04-02 10:50 ` Julia Lawall
2019-04-02 12:50 ` Markus Elfring
2019-04-02 13:15 ` Julia Lawall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1554082674-2049-4-git-send-email-wen.yang99@zte.com.cn \
--to=wen.yang99@zte.com.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=viresh.kumar@linaro.org \
--cc=wang.yi59@zte.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®