[CPUFREQ] Handle CPUs with different capabilities in acpi-cpufreq
Matthew Garrett [Wed, 13 Jul 2011 21:58:32 +0000 (17:58 -0400)]
acpi-cpufreq checks each CPU for aperf/mperf support, but only sets a
global flag. This will cause errors if some CPUs in the system don't
support the feature. Check boot_cpu_has() instead in order to make sure
that all CPUs support it.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Dave Jones <davej@redhat.com>

drivers/cpufreq/acpi-cpufreq.c

index 596d5dd..56c6c6b 100644 (file)
@@ -655,7 +655,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
        acpi_processor_notify_smm(THIS_MODULE);
 
        /* Check for APERF/MPERF support in hardware */
-       if (cpu_has(c, X86_FEATURE_APERFMPERF))
+       if (boot_cpu_has(X86_FEATURE_APERFMPERF))
                acpi_cpufreq_driver.getavg = cpufreq_get_measured_perf;
 
        pr_debug("CPU%u - ACPI performance management activated.\n", cpu);