diff options
| -rw-r--r-- | arch/x86/kernel/cpu/intel_cacheinfo.c | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/smpboot_32.c | 6 | ||||
| -rw-r--r-- | arch/x86/kernel/smpboot_64.c | 6 | ||||
| -rw-r--r-- | include/asm-x86/processor_32.h | 6 | ||||
| -rw-r--r-- | include/asm-x86/smp_64.h | 3 |
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; | |||
| 67 | EXPORT_SYMBOL(smp_num_siblings); | 67 | EXPORT_SYMBOL(smp_num_siblings); |
| 68 | 68 | ||
| 69 | /* Last level cache ID of each logical CPU */ | 69 | /* Last level cache ID of each logical CPU */ |
| 70 | int cpu_llc_id[NR_CPUS] __cpuinitdata = {[0 ... NR_CPUS-1] = BAD_APICID}; | 70 | DEFINE_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 */ |
| 73 | DEFINE_PER_CPU(cpumask_t, cpu_sibling_map); | 73 | DEFINE_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; | |||
| 65 | EXPORT_SYMBOL(smp_num_siblings); | 65 | EXPORT_SYMBOL(smp_num_siblings); |
| 66 | 66 | ||
| 67 | /* Last level cache ID of each logical CPU */ | 67 | /* Last level cache ID of each logical CPU */ |
| 68 | u8 cpu_llc_id[NR_CPUS] __cpuinitdata = {[0 ... NR_CPUS-1] = BAD_APICID}; | 68 | DEFINE_PER_CPU(u8, cpu_llc_id) = BAD_APICID; |
| 69 | 69 | ||
| 70 | /* Bitmask of currently online CPUs */ | 70 | /* Bitmask of currently online CPUs */ |
| 71 | cpumask_t cpu_online_map __read_mostly; | 71 | cpumask_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 | ||
| 113 | extern 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 | */ | ||
| 117 | DECLARE_PER_CPU(u8, cpu_llc_id); | ||
| 114 | extern char ignore_fpu_irq; | 118 | extern char ignore_fpu_irq; |
| 115 | 119 | ||
| 116 | void __init cpu_detect(struct cpuinfo_x86 *c); | 120 | void __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 | */ |
| 50 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | 50 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); |
| 51 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); | 51 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); |
| 52 | extern u8 cpu_llc_id[NR_CPUS]; | 52 | DECLARE_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 |
| 124 | extern 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 |
