diff options
author | travis@sgi.com <travis@sgi.com> | 2008-01-30 13:33:12 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:33:12 +0100 |
commit | e8c10ef9dde3ab7b7d7db6804859d9daf38f01c4 (patch) | |
tree | 528635634911cc977325b746aa149a55b402b2bf /arch/x86/kernel/smpboot_64.c | |
parent | ea348f3e58f43a27c8ac414dd3a14ee59528b86a (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.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c index a8bc2bcdb74..93071cdf084 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) if (per_cpu_offset(cpu)) { per_cpu(x86_cpu_to_apicid, cpu) = x86_cpu_to_apicid_init[cpu]; +#ifdef CONFIG_NUMA per_cpu(x86_cpu_to_node_map, cpu) = x86_cpu_to_node_map_init[cpu]; +#endif + per_cpu(x86_bios_cpu_apicid, cpu) = + x86_bios_cpu_apicid_init[cpu]; } else printk(KERN_NOTICE "per_cpu_offset zero for cpu %d\n", @@ -874,7 +878,10 @@ void __init smp_set_apicids(void) /* indicate the early static arrays are gone */ x86_cpu_to_apicid_early_ptr = NULL; +#ifdef CONFIG_NUMA x86_cpu_to_node_map_early_ptr = NULL; +#endif + x86_bios_cpu_apicid_early_ptr = NULL; } static void __init smp_cpu_index_default(void) |