diff options
Diffstat (limited to 'arch/x86/mach-voyager')
-rw-r--r-- | arch/x86/mach-voyager/setup.c | 1 | ||||
-rw-r--r-- | arch/x86/mach-voyager/voyager_smp.c | 16 |
2 files changed, 8 insertions, 9 deletions
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c index 8e5118371f0f..88c3c555634f 100644 --- a/arch/x86/mach-voyager/setup.c +++ b/arch/x86/mach-voyager/setup.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <asm/e820.h> | 9 | #include <asm/e820.h> |
10 | #include <asm/io.h> | 10 | #include <asm/io.h> |
11 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
12 | #include <asm/cpu.h> | ||
12 | 13 | ||
13 | void __init pre_intr_init_hook(void) | 14 | void __init pre_intr_init_hook(void) |
14 | { | 15 | { |
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 7ffcdeec4631..98e3c2bc7563 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -400,7 +400,7 @@ void __init find_smp_config(void) | |||
400 | VOYAGER_SUS_IN_CONTROL_PORT); | 400 | VOYAGER_SUS_IN_CONTROL_PORT); |
401 | 401 | ||
402 | current_thread_info()->cpu = boot_cpu_id; | 402 | current_thread_info()->cpu = boot_cpu_id; |
403 | x86_write_percpu(cpu_number, boot_cpu_id); | 403 | percpu_write(cpu_number, boot_cpu_id); |
404 | } | 404 | } |
405 | 405 | ||
406 | /* | 406 | /* |
@@ -528,7 +528,6 @@ static void __init do_boot_cpu(__u8 cpu) | |||
528 | /* init_tasks (in sched.c) is indexed logically */ | 528 | /* init_tasks (in sched.c) is indexed logically */ |
529 | stack_start.sp = (void *)idle->thread.sp; | 529 | stack_start.sp = (void *)idle->thread.sp; |
530 | 530 | ||
531 | init_gdt(cpu); | ||
532 | per_cpu(current_task, cpu) = idle; | 531 | per_cpu(current_task, cpu) = idle; |
533 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); | 532 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); |
534 | irq_ctx_init(cpu); | 533 | irq_ctx_init(cpu); |
@@ -1745,13 +1744,13 @@ static void __init voyager_smp_prepare_cpus(unsigned int max_cpus) | |||
1745 | 1744 | ||
1746 | static void __cpuinit voyager_smp_prepare_boot_cpu(void) | 1745 | static void __cpuinit voyager_smp_prepare_boot_cpu(void) |
1747 | { | 1746 | { |
1748 | init_gdt(smp_processor_id()); | 1747 | int cpu = smp_processor_id(); |
1749 | switch_to_new_gdt(); | 1748 | switch_to_new_gdt(cpu); |
1750 | 1749 | ||
1751 | cpu_online_map = cpumask_of_cpu(smp_processor_id()); | 1750 | cpu_set(cpu, cpu_online_map); |
1752 | cpu_callout_map = cpumask_of_cpu(smp_processor_id()); | 1751 | cpu_set(cpu, cpu_callout_map); |
1753 | cpu_callin_map = CPU_MASK_NONE; | 1752 | cpu_set(cpu, cpu_possible_map); |
1754 | cpu_present_map = cpumask_of_cpu(smp_processor_id()); | 1753 | cpu_set(cpu, cpu_present_map); |
1755 | 1754 | ||
1756 | } | 1755 | } |
1757 | 1756 | ||
@@ -1779,7 +1778,6 @@ static void __init voyager_smp_cpus_done(unsigned int max_cpus) | |||
1779 | void __init smp_setup_processor_id(void) | 1778 | void __init smp_setup_processor_id(void) |
1780 | { | 1779 | { |
1781 | current_thread_info()->cpu = hard_smp_processor_id(); | 1780 | current_thread_info()->cpu = hard_smp_processor_id(); |
1782 | x86_write_percpu(cpu_number, hard_smp_processor_id()); | ||
1783 | } | 1781 | } |
1784 | 1782 | ||
1785 | static void voyager_send_call_func(const struct cpumask *callmask) | 1783 | static void voyager_send_call_func(const struct cpumask *callmask) |