Browse Source

cpufreq: Return error if ->get() failed in cpufreq_update_policy()

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>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Viresh Kumar 11 years ago
parent
commit
bd0fa9bb45
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/cpufreq/cpufreq.c

+ 5 - 0
drivers/cpufreq/cpufreq.c

@@ -2139,6 +2139,11 @@ int cpufreq_update_policy(unsigned int cpu)
 	 */
 	 */
 	if (cpufreq_driver->get) {
 	if (cpufreq_driver->get) {
 		new_policy.cur = cpufreq_driver->get(cpu);
 		new_policy.cur = cpufreq_driver->get(cpu);
+		if (WARN_ON(!new_policy.cur)) {
+			ret = -EIO;
+			goto no_policy;
+		}
+
 		if (!policy->cur) {
 		if (!policy->cur) {
 			pr_debug("Driver did not initialize current freq");
 			pr_debug("Driver did not initialize current freq");
 			policy->cur = new_policy.cur;
 			policy->cur = new_policy.cur;