diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-07-09 12:24:41 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-07-09 12:24:41 +0100 |
commit | 156433ce266bb969fe9d0ead17e275015e2aef5a (patch) | |
tree | ef9e5d50f83ee5d4b495c303d834b31b87b3819a /xen/arch/x86/acpi/cpufreq/cpufreq.c | |
parent | 378405e3a84f6526bfc783ac7c197c22e6669369 (diff) |
cpufreq: eliminate unnecessary NR_CPUS-sized arrays
Replace them with per-CPU data.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/acpi/cpufreq/cpufreq.c')
-rw-r--r-- | xen/arch/x86/acpi/cpufreq/cpufreq.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c index d9697ddf32..5c6f85cd2c 100644 --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c @@ -210,10 +210,10 @@ static u32 get_cur_val(cpumask_t mask) if (!cpu_isset(cpu, mask)) cpu = first_cpu(mask); - if (cpu >= NR_CPUS) + if (cpu >= NR_CPUS || !cpu_online(cpu)) return 0; - policy = cpufreq_cpu_policy[cpu]; + policy = per_cpu(cpufreq_cpu_policy, cpu); if (!policy || !drv_data[policy->cpu]) return 0; @@ -281,7 +281,7 @@ unsigned int get_measured_perf(unsigned int cpu, unsigned int flag) if (!cpu_online(cpu)) return 0; - policy = cpufreq_cpu_policy[cpu]; + policy = per_cpu(cpufreq_cpu_policy, cpu); if (!policy || !policy->aperf_mperf) return 0; @@ -366,7 +366,10 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu) struct acpi_cpufreq_data *data; unsigned int freq; - policy = cpufreq_cpu_policy[cpu]; + if (!cpu_online(cpu)) + return 0; + + policy = per_cpu(cpufreq_cpu_policy, cpu); if (!policy) return 0; |