aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-01-13 06:41:34 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-16 08:18:17 -0500
commitf10fcd47120e80f66665567dbe17f5071c7aef52 (patch)
tree825281816d434a6b3ba596bb922d7a4a77d91448
parent7de6883faad71e3a253d55b9e1a47b89ebce0a31 (diff)
x86: make early_per_cpu() a lvalue and use it
Make early_per_cpu() a lvalue as per_cpu() is and use it where applicable. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/include/asm/percpu.h6
-rw-r--r--arch/x86/include/asm/topology.h5
-rw-r--r--arch/x86/kernel/apic.c13
3 files changed, 6 insertions, 18 deletions
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index ece72053ba63..df644f3e53e6 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -195,9 +195,9 @@ do { \
195#define early_per_cpu_ptr(_name) (_name##_early_ptr) 195#define early_per_cpu_ptr(_name) (_name##_early_ptr)
196#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx]) 196#define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx])
197#define early_per_cpu(_name, _cpu) \ 197#define early_per_cpu(_name, _cpu) \
198 (early_per_cpu_ptr(_name) ? \ 198 *(early_per_cpu_ptr(_name) ? \
199 early_per_cpu_ptr(_name)[_cpu] : \ 199 &early_per_cpu_ptr(_name)[_cpu] : \
200 per_cpu(_name, _cpu)) 200 &per_cpu(_name, _cpu))
201 201
202#else /* !CONFIG_SMP */ 202#else /* !CONFIG_SMP */
203#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \ 203#define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 4e2f2e0aab27..87ca3fd86e88 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -102,10 +102,7 @@ static inline int cpu_to_node(int cpu)
102/* Same function but used if called before per_cpu areas are setup */ 102/* Same function but used if called before per_cpu areas are setup */
103static inline int early_cpu_to_node(int cpu) 103static inline int early_cpu_to_node(int cpu)
104{ 104{
105 if (early_per_cpu_ptr(x86_cpu_to_node_map)) 105 return early_per_cpu(x86_cpu_to_node_map, cpu);
106 return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu];
107
108 return per_cpu(x86_cpu_to_node_map, cpu);
109} 106}
110 107
111/* Returns a pointer to the cpumask of CPUs on Node 'node'. */ 108/* Returns a pointer to the cpumask of CPUs on Node 'node'. */
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c
index 38d6aab2358d..485787955834 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic.c
@@ -1877,17 +1877,8 @@ void __cpuinit generic_processor_info(int apicid, int version)
1877#endif 1877#endif
1878 1878
1879#if defined(CONFIG_X86_SMP) || defined(CONFIG_X86_64) 1879#if defined(CONFIG_X86_SMP) || defined(CONFIG_X86_64)
1880 /* are we being called early in kernel startup? */ 1880 early_per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1881 if (early_per_cpu_ptr(x86_cpu_to_apicid)) { 1881 early_per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1882 u16 *cpu_to_apicid = early_per_cpu_ptr(x86_cpu_to_apicid);
1883 u16 *bios_cpu_apicid = early_per_cpu_ptr(x86_bios_cpu_apicid);
1884
1885 cpu_to_apicid[cpu] = apicid;
1886 bios_cpu_apicid[cpu] = apicid;
1887 } else {
1888 per_cpu(x86_cpu_to_apicid, cpu) = apicid;
1889 per_cpu(x86_bios_cpu_apicid, cpu) = apicid;
1890 }
1891#endif 1882#endif
1892 1883
1893 set_cpu_possible(cpu, true); 1884 set_cpu_possible(cpu, true);