cpufreq / intel_pstate: Do not load on VM that does not report max P state.
authorDirk Brandewie <dirk.brandewie@gmail.com>
Tue, 5 Mar 2013 22:15:26 +0000 (14:15 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 6 Mar 2013 22:40:11 +0000 (23:40 +0100)
It seems some VMs support the P state MSRs but return zeros. Fail
gracefully if we are running in this environment.

References: https://bugzilla.redhat.com/show_bug.cgi?id=916833
Reported-by: Josh Boyer <jwboyer@redhat.com>
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c

index 46a23b65dfc801fb1729b19df8419e18c58d6ca3..f6dd1e7611293bf5a66531f2acb285713439430c 100644 (file)
@@ -662,6 +662,9 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
 
        cpu = all_cpu_data[policy->cpu];
 
+       if (!policy->cpuinfo.max_freq)
+               return -ENODEV;
+
        intel_pstate_get_min_max(cpu, &min, &max);
 
        limits.min_perf_pct = (policy->min * 100) / policy->cpuinfo.max_freq;