diff options
author | Tejun Heo <tj@kernel.org> | 2009-01-13 06:41:34 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-16 08:18:17 -0500 |
commit | f10fcd47120e80f66665567dbe17f5071c7aef52 (patch) | |
tree | 825281816d434a6b3ba596bb922d7a4a77d91448 | |
parent | 7de6883faad71e3a253d55b9e1a47b89ebce0a31 (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.h | 6 | ||||
-rw-r--r-- | arch/x86/include/asm/topology.h | 5 | ||||
-rw-r--r-- | arch/x86/kernel/apic.c | 13 |
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 */ |
103 | static inline int early_cpu_to_node(int cpu) | 103 | static 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); |