summaryrefslogtreecommitdiff
path: root/xen/arch/x86/acpi/cpufreq/cpufreq.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-07-09 12:24:41 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-07-09 12:24:41 +0100
commit156433ce266bb969fe9d0ead17e275015e2aef5a (patch)
treeef9e5d50f83ee5d4b495c303d834b31b87b3819a /xen/arch/x86/acpi/cpufreq/cpufreq.c
parent378405e3a84f6526bfc783ac7c197c22e6669369 (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.c11
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;