From: Viresh Kumar <viresh.kumar@linaro.org>
To: rjw@rjwysocki.net
Cc: linaro-kernel@lists.linaro.org, cpufreq@vger.kernel.org,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
pierre-list@ossman.eu, Viresh Kumar <viresh.kumar@linaro.org>
Subject: [PATCH 1/2] cpufreq: Return error if ->get() failed in cpufreq_update_policy()
Date: Fri, 14 Feb 2014 16:30:40 +0530 [thread overview]
Message-ID: <15ccc0609cb9ee3db0ad3a95b29bf69d11ea197c.1392375504.git.viresh.kumar@linaro.org> (raw)
cpufreq_update_policy() calls cpufreq_driver->get() to get current frequency of
a CPU and it is not supposed to fail or return zero. Return error in case that
happens.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
Pierre,
I don't think this will fix the issue you were facing but might supress it :)..
And so you need to understand what causes your ->get() to return zero.
@Rafael: I got to these patches while looking at code recently after Pierre
complained about. Came to this conclusion after having discussions with Srivatsa
over IRC..
drivers/cpufreq/cpufreq.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 08ca8c9..383362b 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -2151,6 +2151,13 @@ int cpufreq_update_policy(unsigned int cpu)
*/
if (cpufreq_driver->get) {
new_policy.cur = cpufreq_driver->get(cpu);
+
+ if (!new_policy.cur) {
+ pr_err("%s: ->get() returned 0 KHz\n", __func__);
+ ret = -EINVAL;
+ goto no_policy;
+ }
+
if (!policy->cur) {
pr_debug("Driver did not initialize current freq");
policy->cur = new_policy.cur;
--
1.7.12.rc2.18.g61b472e
next reply other threads:[~2014-02-14 11:00 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-14 11:00 Viresh Kumar [this message]
2014-02-14 11:00 ` [PATCH 2/2] cpufreq: don't call cpufreq_update_policy() on CPU addition Viresh Kumar
2014-02-17 0:21 ` Rafael J. Wysocki
2014-02-17 5:15 ` Viresh Kumar
2014-02-17 22:22 ` Rafael J. Wysocki
2014-02-17 8:43 ` Srivatsa S. Bhat
2014-02-17 8:54 ` Viresh Kumar
2014-02-17 8:59 ` Srivatsa S. Bhat
2014-02-17 0:28 ` [PATCH 1/2] cpufreq: Return error if ->get() failed in cpufreq_update_policy() Rafael J. Wysocki
2014-02-17 5:14 ` Viresh Kumar
2014-02-17 8:19 ` Srivatsa S. Bhat
2014-02-17 8:39 ` Viresh Kumar
2014-02-17 8:55 ` Srivatsa S. Bhat
2014-02-17 9:10 ` Viresh Kumar
2014-02-17 22:00 ` Rafael J. Wysocki
2014-02-18 2:19 ` Viresh Kumar
2014-02-25 4:41 ` Viresh Kumar
2014-02-25 5:53 ` Srivatsa S. Bhat
2014-02-25 6:08 ` Viresh Kumar
2014-02-25 13:10 ` Rafael J. Wysocki
2014-02-25 14:42 ` Viresh Kumar
2014-02-25 22:29 ` Rafael J. Wysocki
2014-02-26 5:15 ` Viresh Kumar
2014-03-10 5:37 ` Viresh Kumar
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=15ccc0609cb9ee3db0ad3a95b29bf69d11ea197c.1392375504.git.viresh.kumar@linaro.org \
--to=viresh.kumar@linaro.org \
--cc=cpufreq@vger.kernel.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pierre-list@ossman.eu \
--cc=rjw@rjwysocki.net \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).