linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] cpufreq: Return error if ->get() failed in cpufreq_update_policy()
@ 2014-02-14 11:00 Viresh Kumar
  2014-02-14 11:00 ` [PATCH 2/2] cpufreq: don't call cpufreq_update_policy() on CPU addition Viresh Kumar
  2014-02-17  0:28 ` [PATCH 1/2] cpufreq: Return error if ->get() failed in cpufreq_update_policy() Rafael J. Wysocki
  0 siblings, 2 replies; 24+ messages in thread
From: Viresh Kumar @ 2014-02-14 11:00 UTC (permalink / raw)
  To: rjw
  Cc: linaro-kernel, cpufreq, linux-pm, linux-kernel, pierre-list,
	Viresh Kumar

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


^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2014-03-10  5:37 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-14 11:00 [PATCH 1/2] cpufreq: Return error if ->get() failed in cpufreq_update_policy() Viresh Kumar
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

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 NNTP newsgroup(s).