aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/intel_cacheinfo.c4
-rw-r--r--arch/x86/kernel/smpboot_32.c6
-rw-r--r--arch/x86/kernel/smpboot_64.c6
-rw-r--r--include/asm-x86/processor_32.h6
-rw-r--r--include/asm-x86/smp_64.h3
5 files changed, 15 insertions, 10 deletions
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
index 297a24116949..35c7ebb57423 100644
--- a/arch/x86/kernel/cpu/intel_cacheinfo.c
+++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
@@ -417,14 +417,14 @@ unsigned int __cpuinit init_intel_cacheinfo(struct cpuinfo_x86 *c)
417 if (new_l2) { 417 if (new_l2) {
418 l2 = new_l2; 418 l2 = new_l2;
419#ifdef CONFIG_X86_HT 419#ifdef CONFIG_X86_HT
420 cpu_llc_id[cpu] = l2_id; 420 per_cpu(cpu_llc_id, cpu) = l2_id;
421#endif 421#endif
422 } 422 }
423 423
424 if (new_l3) { 424 if (new_l3) {
425 l3 = new_l3; 425 l3 = new_l3;
426#ifdef CONFIG_X86_HT 426#ifdef CONFIG_X86_HT
427 cpu_llc_id[cpu] = l3_id; 427 per_cpu(cpu_llc_id, cpu) = l3_id;
428#endif 428#endif
429 } 429 }
430 430
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 631be36ec2a9..47bccfc283d9 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -67,7 +67,7 @@ int smp_num_siblings = 1;
67EXPORT_SYMBOL(smp_num_siblings); 67EXPORT_SYMBOL(smp_num_siblings);
68 68
69/* Last level cache ID of each logical CPU */ 69/* Last level cache ID of each logical CPU */
70int cpu_llc_id[NR_CPUS] __cpuinitdata = {[0 ... NR_CPUS-1] = BAD_APICID}; 70DEFINE_PER_CPU(u8, cpu_llc_id) = BAD_APICID;
71 71
72/* representing HT siblings of each logical CPU */ 72/* representing HT siblings of each logical CPU */
73DEFINE_PER_CPU(cpumask_t, cpu_sibling_map); 73DEFINE_PER_CPU(cpumask_t, cpu_sibling_map);
@@ -348,8 +348,8 @@ void __cpuinit set_cpu_sibling_map(int cpu)
348 } 348 }
349 349
350 for_each_cpu_mask(i, cpu_sibling_setup_map) { 350 for_each_cpu_mask(i, cpu_sibling_setup_map) {
351 if (cpu_llc_id[cpu] != BAD_APICID && 351 if (per_cpu(cpu_llc_id, cpu) != BAD_APICID &&
352 cpu_llc_id[cpu] == cpu_llc_id[i]) { 352 per_cpu(cpu_llc_id, cpu) == per_cpu(cpu_llc_id, i)) {
353 cpu_set(i, c[cpu].llc_shared_map); 353 cpu_set(i, c[cpu].llc_shared_map);
354 cpu_set(cpu, c[i].llc_shared_map); 354 cpu_set(cpu, c[i].llc_shared_map);
355 } 355 }
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index c3e8668c5278..7c8f58643186 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -65,7 +65,7 @@ int smp_num_siblings = 1;
65EXPORT_SYMBOL(smp_num_siblings); 65EXPORT_SYMBOL(smp_num_siblings);
66 66
67/* Last level cache ID of each logical CPU */ 67/* Last level cache ID of each logical CPU */
68u8 cpu_llc_id[NR_CPUS] __cpuinitdata = {[0 ... NR_CPUS-1] = BAD_APICID}; 68DEFINE_PER_CPU(u8, cpu_llc_id) = BAD_APICID;
69 69
70/* Bitmask of currently online CPUs */ 70/* Bitmask of currently online CPUs */
71cpumask_t cpu_online_map __read_mostly; 71cpumask_t cpu_online_map __read_mostly;
@@ -283,8 +283,8 @@ static inline void set_cpu_sibling_map(int cpu)
283 } 283 }
284 284
285 for_each_cpu_mask(i, cpu_sibling_setup_map) { 285 for_each_cpu_mask(i, cpu_sibling_setup_map) {
286 if (cpu_llc_id[cpu] != BAD_APICID && 286 if (per_cpu(cpu_llc_id, cpu) != BAD_APICID &&
287 cpu_llc_id[cpu] == cpu_llc_id[i]) { 287 per_cpu(cpu_llc_id, cpu) == per_cpu(cpu_llc_id, i)) {
288 cpu_set(i, c[cpu].llc_shared_map); 288 cpu_set(i, c[cpu].llc_shared_map);
289 cpu_set(cpu, c[i].llc_shared_map); 289 cpu_set(cpu, c[i].llc_shared_map);
290 } 290 }
diff --git a/include/asm-x86/processor_32.h b/include/asm-x86/processor_32.h
index 83800e7496ee..565b6fc5f5b4 100644
--- a/include/asm-x86/processor_32.h
+++ b/include/asm-x86/processor_32.h
@@ -110,7 +110,11 @@ extern struct cpuinfo_x86 cpu_data[];
110#define current_cpu_data boot_cpu_data 110#define current_cpu_data boot_cpu_data
111#endif 111#endif
112 112
113extern int cpu_llc_id[NR_CPUS]; 113/*
114 * the following now lives in the per cpu area:
115 * extern int cpu_llc_id[NR_CPUS];
116 */
117DECLARE_PER_CPU(u8, cpu_llc_id);
114extern char ignore_fpu_irq; 118extern char ignore_fpu_irq;
115 119
116void __init cpu_detect(struct cpuinfo_x86 *c); 120void __init cpu_detect(struct cpuinfo_x86 *c);
diff --git a/include/asm-x86/smp_64.h b/include/asm-x86/smp_64.h
index f1545704e24e..6f0e0273b646 100644
--- a/include/asm-x86/smp_64.h
+++ b/include/asm-x86/smp_64.h
@@ -49,7 +49,7 @@ extern int smp_call_function_mask(cpumask_t mask, void (*func)(void *),
49 */ 49 */
50DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 50DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
51DECLARE_PER_CPU(cpumask_t, cpu_core_map); 51DECLARE_PER_CPU(cpumask_t, cpu_core_map);
52extern u8 cpu_llc_id[NR_CPUS]; 52DECLARE_PER_CPU(u8, cpu_llc_id);
53 53
54#define SMP_TRAMPOLINE_BASE 0x6000 54#define SMP_TRAMPOLINE_BASE 0x6000
55 55
@@ -121,6 +121,7 @@ static __inline int logical_smp_processor_id(void)
121#ifdef CONFIG_SMP 121#ifdef CONFIG_SMP
122#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) 122#define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu)
123#else 123#else
124extern unsigned int boot_cpu_id;
124#define cpu_physical_id(cpu) boot_cpu_id 125#define cpu_physical_id(cpu) boot_cpu_id
125#endif /* !CONFIG_SMP */ 126#endif /* !CONFIG_SMP */
126#endif 127#endif