[PATCH 09/10] x86: Change NR_CPUS arrays in acpi-cpufreq V3

Previous thread: [PATCH 08/10] x86: Change NR_CPUS arrays in numa_64 V3 by travis on Wednesday, January 16, 2008 - 1:09 pm. (1 message)

Next thread: 2.6.24-rc8 hangs at mfgpt-timer by Arnd Hannemann on Wednesday, January 16, 2008 - 1:44 pm. (52 messages)
To: Andrew Morton <akpm@...>, Andi Kleen <ak@...>, <mingo@...>
Cc: Eric Dumazet <dada1@...>, Christoph Lameter <clameter@...>, Jack Steiner <steiner@...>, <linux-mm@...>, <linux-kernel@...>
Date: Wednesday, January 16, 2008 - 1:09 pm

Change the following static arrays sized by NR_CPUS to
per_cpu data variables:

acpi_cpufreq_data *drv_data[NR_CPUS]

Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
---
V1->V2:
- (none)
---
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)

--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -67,7 +67,8 @@ struct acpi_cpufreq_data {
unsigned int cpu_feature;
};

-static struct acpi_cpufreq_data *drv_data[NR_CPUS];
+static DEFINE_PER_CPU(struct acpi_cpufreq_data *, drv_data);
+
/* acpi_perf_data is a pointer to percpu data. */
static struct acpi_processor_performance *acpi_perf_data;

@@ -218,14 +219,14 @@ static u32 get_cur_val(cpumask_t mask)
if (unlikely(cpus_empty(mask)))
return 0;

- switch (drv_data[first_cpu(mask)]->cpu_feature) {
+ switch (per_cpu(drv_data, first_cpu(mask))->cpu_feature) {
case SYSTEM_INTEL_MSR_CAPABLE:
cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
cmd.addr.msr.reg = MSR_IA32_PERF_STATUS;
break;
case SYSTEM_IO_CAPABLE:
cmd.type = SYSTEM_IO_CAPABLE;
- perf = drv_data[first_cpu(mask)]->acpi_data;
+ perf = per_cpu(drv_data, first_cpu(mask))->acpi_data;
cmd.addr.io.port = perf->control_register.address;
cmd.addr.io.bit_width = perf->control_register.bit_width;
break;
@@ -325,7 +326,7 @@ static unsigned int get_measured_perf(un

#endif

- retval = drv_data[cpu]->max_freq * perf_percent / 100;
+ retval = per_cpu(drv_data, cpu)->max_freq * perf_percent / 100;

put_cpu();
set_cpus_allowed(current, saved_mask);
@@ -336,7 +337,7 @@ static unsigned int get_measured_perf(un

static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
{
- struct acpi_cpufreq_data *data = drv_data[cpu];
+ struct acpi_cpufreq_data *data = per_cpu(drv_data, cpu);
unsigned int freq;

dprintk("get_cur_freq_...

Previous thread: [PATCH 08/10] x86: Change NR_CPUS arrays in numa_64 V3 by travis on Wednesday, January 16, 2008 - 1:09 pm. (1 message)

Next thread: 2.6.24-rc8 hangs at mfgpt-timer by Arnd Hannemann on Wednesday, January 16, 2008 - 1:44 pm. (52 messages)