diff options
author | Brian Gerst <brgerst@gmail.com> | 2009-01-26 22:56:48 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-01-26 22:56:48 -0500 |
commit | 89c9c4c58ee86e6e8802597271f23679e0c46647 (patch) | |
tree | eb22bb5577e84f2f1fdcc90d0f293f66673c8910 | |
parent | 34019be1cd2941128b5de6d7c0fbdb51f967d268 (diff) |
x86: make Voyager use x86 per-cpu setup.
Impact: standardize all x86 platforms on same setup code
With the preceding changes, Voyager can use the same per-cpu setup
code as all the other x86 platforms.
Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r-- | arch/x86/Kconfig | 2 | ||||
-rw-r--r-- | arch/x86/kernel/setup_percpu.c | 5 | ||||
-rw-r--r-- | arch/x86/mach-voyager/voyager_smp.c | 3 |
3 files changed, 1 insertions, 9 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5a29b792cb84..d6218e6c9824 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -133,7 +133,7 @@ config ARCH_HAS_CACHE_LINE_SIZE | |||
133 | def_bool y | 133 | def_bool y |
134 | 134 | ||
135 | config HAVE_SETUP_PER_CPU_AREA | 135 | config HAVE_SETUP_PER_CPU_AREA |
136 | def_bool X86_64_SMP || (X86_SMP && !X86_VOYAGER) | 136 | def_bool y |
137 | 137 | ||
138 | config HAVE_CPUMASK_OF_CPU_MAP | 138 | config HAVE_CPUMASK_OF_CPU_MAP |
139 | def_bool X86_64_SMP | 139 | def_bool X86_64_SMP |
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c index be77f1a1231d..599dc1cc1da8 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c | |||
@@ -35,8 +35,6 @@ EXPORT_PER_CPU_SYMBOL(cpu_number); | |||
35 | DEFINE_PER_CPU(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET; | 35 | DEFINE_PER_CPU(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET; |
36 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); | 36 | EXPORT_PER_CPU_SYMBOL(this_cpu_off); |
37 | 37 | ||
38 | #ifdef CONFIG_HAVE_SETUP_PER_CPU_AREA | ||
39 | |||
40 | unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = { | 38 | unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = { |
41 | [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, | 39 | [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, |
42 | }; | 40 | }; |
@@ -125,6 +123,3 @@ void __init setup_per_cpu_areas(void) | |||
125 | /* Setup cpu initialized, callin, callout masks */ | 123 | /* Setup cpu initialized, callin, callout masks */ |
126 | setup_cpu_local_masks(); | 124 | setup_cpu_local_masks(); |
127 | } | 125 | } |
128 | |||
129 | #endif | ||
130 | |||
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 96f15b09a4c5..dd82f2052f34 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -531,7 +531,6 @@ static void __init do_boot_cpu(__u8 cpu) | |||
531 | stack_start.sp = (void *)idle->thread.sp; | 531 | stack_start.sp = (void *)idle->thread.sp; |
532 | 532 | ||
533 | init_gdt(cpu); | 533 | init_gdt(cpu); |
534 | per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu]; | ||
535 | per_cpu(current_task, cpu) = idle; | 534 | per_cpu(current_task, cpu) = idle; |
536 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); | 535 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); |
537 | irq_ctx_init(cpu); | 536 | irq_ctx_init(cpu); |
@@ -1749,7 +1748,6 @@ static void __init voyager_smp_prepare_cpus(unsigned int max_cpus) | |||
1749 | static void __cpuinit voyager_smp_prepare_boot_cpu(void) | 1748 | static void __cpuinit voyager_smp_prepare_boot_cpu(void) |
1750 | { | 1749 | { |
1751 | init_gdt(smp_processor_id()); | 1750 | init_gdt(smp_processor_id()); |
1752 | per_cpu(this_cpu_off, cpu) = __per_cpu_offset[cpu]; | ||
1753 | switch_to_new_gdt(); | 1751 | switch_to_new_gdt(); |
1754 | 1752 | ||
1755 | cpu_set(smp_processor_id(), cpu_online_map); | 1753 | cpu_set(smp_processor_id(), cpu_online_map); |
@@ -1782,7 +1780,6 @@ static void __init voyager_smp_cpus_done(unsigned int max_cpus) | |||
1782 | void __init smp_setup_processor_id(void) | 1780 | void __init smp_setup_processor_id(void) |
1783 | { | 1781 | { |
1784 | current_thread_info()->cpu = hard_smp_processor_id(); | 1782 | current_thread_info()->cpu = hard_smp_processor_id(); |
1785 | percpu_write(cpu_number, hard_smp_processor_id()); | ||
1786 | } | 1783 | } |
1787 | 1784 | ||
1788 | static void voyager_send_call_func(cpumask_t callmask) | 1785 | static void voyager_send_call_func(cpumask_t callmask) |