aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/smp_64.h
diff options
context:
space:
mode:
authortravis@sgi.com <travis@sgi.com>2008-01-30 07:33:12 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:33:12 -0500
commite8c10ef9dde3ab7b7d7db6804859d9daf38f01c4 (patch)
tree528635634911cc977325b746aa149a55b402b2bf /include/asm-x86/smp_64.h
parentea348f3e58f43a27c8ac414dd3a14ee59528b86a (diff)
x86: change bios_cpu_apicid to percpu data variable
Change static bios_cpu_apicid array to a per_cpu data variable. This includes using a static array used during initialization similar to the way x86_cpu_to_apicid[] is handled. There is one early use of bios_cpu_apicid in apic_is_clustered_box(). The other reference in cpu_present_to_apicid() is called after smp_set_apicids() has setup the percpu version of bios_cpu_apicid. [ mingo@elte.hu: build fix ] Signed-off-by: Mike Travis <travis@sgi.com> Reviewed-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/smp_64.h')
-rw-r--r--include/asm-x86/smp_64.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/asm-x86/smp_64.h b/include/asm-x86/smp_64.h
index 6fa332db29cc..e0a75519ad21 100644
--- a/include/asm-x86/smp_64.h
+++ b/include/asm-x86/smp_64.h
@@ -27,18 +27,20 @@ extern int smp_call_function_mask(cpumask_t mask, void (*func)(void *),
27 void *info, int wait); 27 void *info, int wait);
28 28
29extern u16 __initdata x86_cpu_to_apicid_init[]; 29extern u16 __initdata x86_cpu_to_apicid_init[];
30extern u16 __initdata x86_bios_cpu_apicid_init[];
30extern void *x86_cpu_to_apicid_early_ptr; 31extern void *x86_cpu_to_apicid_early_ptr;
31extern u16 bios_cpu_apicid[]; 32extern void *x86_bios_cpu_apicid_early_ptr;
32 33
33DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 34DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
34DECLARE_PER_CPU(cpumask_t, cpu_core_map); 35DECLARE_PER_CPU(cpumask_t, cpu_core_map);
35DECLARE_PER_CPU(u16, cpu_llc_id); 36DECLARE_PER_CPU(u16, cpu_llc_id);
36DECLARE_PER_CPU(u16, x86_cpu_to_apicid); 37DECLARE_PER_CPU(u16, x86_cpu_to_apicid);
38DECLARE_PER_CPU(u16, x86_bios_cpu_apicid);
37 39
38static inline int cpu_present_to_apicid(int mps_cpu) 40static inline int cpu_present_to_apicid(int mps_cpu)
39{ 41{
40 if (mps_cpu < NR_CPUS) 42 if (cpu_present(mps_cpu))
41 return (int)bios_cpu_apicid[mps_cpu]; 43 return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu);
42 else 44 else
43 return BAD_APICID; 45 return BAD_APICID;
44} 46}