summaryrefslogtreecommitdiff
path: root/xen/arch/x86/acpi/cpufreq/cpufreq.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-07-08 09:44:46 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-07-08 09:44:46 +0100
commite6e5b8fba0a2747c3d15f96c314d6111d00f4174 (patch)
tree7c1db8828caa2e76d2feb2fbcecb60fc1b73a926 /xen/arch/x86/acpi/cpufreq/cpufreq.c
parent876e14ee837c79c139c219d88c62627018c6ec51 (diff)
x86/cpufreq: check array index before use
... rather than after. 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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index a9b1d239a2..d9697ddf32 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -210,9 +210,11 @@ static u32 get_cur_val(cpumask_t mask)
if (!cpu_isset(cpu, mask))
cpu = first_cpu(mask);
- policy = cpufreq_cpu_policy[cpu];
+ if (cpu >= NR_CPUS)
+ return 0;
- if (cpu >= NR_CPUS || !policy || !drv_data[policy->cpu])
+ policy = cpufreq_cpu_policy[cpu];
+ if (!policy || !drv_data[policy->cpu])
return 0;
switch (drv_data[policy->cpu]->cpu_feature) {