aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot_64.c
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 /arch/x86/kernel/smpboot_64.c
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 'arch/x86/kernel/smpboot_64.c')
-rw-r--r--arch/x86/kernel/smpboot_64.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index a8bc2bcdb74a..93071cdf0849 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -864,8 +864,12 @@ void __init smp_set_apicids(void)
864 if (per_cpu_offset(cpu)) { 864 if (per_cpu_offset(cpu)) {
865 per_cpu(x86_cpu_to_apicid, cpu) = 865 per_cpu(x86_cpu_to_apicid, cpu) =
866 x86_cpu_to_apicid_init[cpu]; 866 x86_cpu_to_apicid_init[cpu];
867#ifdef CONFIG_NUMA
867 per_cpu(x86_cpu_to_node_map, cpu) = 868 per_cpu(x86_cpu_to_node_map, cpu) =
868 x86_cpu_to_node_map_init[cpu]; 869 x86_cpu_to_node_map_init[cpu];
870#endif
871 per_cpu(x86_bios_cpu_apicid, cpu) =
872 x86_bios_cpu_apicid_init[cpu];
869 } 873 }
870 else 874 else
871 printk(KERN_NOTICE "per_cpu_offset zero for cpu %d\n", 875 printk(KERN_NOTICE "per_cpu_offset zero for cpu %d\n",
@@ -874,7 +878,10 @@ void __init smp_set_apicids(void)
874 878
875 /* indicate the early static arrays are gone */ 879 /* indicate the early static arrays are gone */
876 x86_cpu_to_apicid_early_ptr = NULL; 880 x86_cpu_to_apicid_early_ptr = NULL;
881#ifdef CONFIG_NUMA
877 x86_cpu_to_node_map_early_ptr = NULL; 882 x86_cpu_to_node_map_early_ptr = NULL;
883#endif
884 x86_bios_cpu_apicid_early_ptr = NULL;
878} 885}
879 886
880static void __init smp_cpu_index_default(void) 887static void __init smp_cpu_index_default(void)