diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-30 21:33:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-30 21:33:46 -0400 |
commit | 74c75f524ec5a48a00a8f01864a754c1d0e4a44b (patch) | |
tree | a86b28f0c13a0b91048a1c21d0c77222bf7d4b7e /arch/x86/mach-voyager/voyager_smp.c | |
parent | 0b23e30b48b0b634fdc8c8198ea9dfec8c091968 (diff) | |
parent | 1c4acdb467f8a6704855a5670ff3d82e3c18eb0b (diff) |
Merge branch 'x86-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86: cpu_index build fix
x86/voyager: fix missing cpu_index initialisation
x86/voyager: fix compile breakage caused by dc1e35c6e95e8923cf1d3510438b63c600fee1e2
x86: fix /dev/mem mmap breakage when PAT is disabled
x86/voyager: fix compile breakage casued by x86: move prefill_possible_map calling early
x86: use CONFIG_X86_SMP instead of CONFIG_SMP
x86/voyager: fix boot breakage caused by x86: boot secondary cpus through initial_code
x86, uv: fix compile error in uv_hub.h
i386/PAE: fix pud_page()
x86: remove debug code from arch_add_memory()
x86: start annotating early ioremap pointers with __iomem
x86: two trivial sparse annotations
x86: fix init_memory_mapping for [dc000000 - e0000000) - v2
Diffstat (limited to 'arch/x86/mach-voyager/voyager_smp.c')
-rw-r--r-- | arch/x86/mach-voyager/voyager_smp.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 0f6e8a6523ae..7f4c6af14351 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -90,6 +90,7 @@ static void ack_vic_irq(unsigned int irq); | |||
90 | static void vic_enable_cpi(void); | 90 | static void vic_enable_cpi(void); |
91 | static void do_boot_cpu(__u8 cpuid); | 91 | static void do_boot_cpu(__u8 cpuid); |
92 | static void do_quad_bootstrap(void); | 92 | static void do_quad_bootstrap(void); |
93 | static void initialize_secondary(void); | ||
93 | 94 | ||
94 | int hard_smp_processor_id(void); | 95 | int hard_smp_processor_id(void); |
95 | int safe_smp_processor_id(void); | 96 | int safe_smp_processor_id(void); |
@@ -344,6 +345,12 @@ static void do_quad_bootstrap(void) | |||
344 | } | 345 | } |
345 | } | 346 | } |
346 | 347 | ||
348 | void prefill_possible_map(void) | ||
349 | { | ||
350 | /* This is empty on voyager because we need a much | ||
351 | * earlier detection which is done in find_smp_config */ | ||
352 | } | ||
353 | |||
347 | /* Set up all the basic stuff: read the SMP config and make all the | 354 | /* Set up all the basic stuff: read the SMP config and make all the |
348 | * SMP information reflect only the boot cpu. All others will be | 355 | * SMP information reflect only the boot cpu. All others will be |
349 | * brought on-line later. */ | 356 | * brought on-line later. */ |
@@ -413,6 +420,7 @@ void __init smp_store_cpu_info(int id) | |||
413 | struct cpuinfo_x86 *c = &cpu_data(id); | 420 | struct cpuinfo_x86 *c = &cpu_data(id); |
414 | 421 | ||
415 | *c = boot_cpu_data; | 422 | *c = boot_cpu_data; |
423 | c->cpu_index = id; | ||
416 | 424 | ||
417 | identify_secondary_cpu(c); | 425 | identify_secondary_cpu(c); |
418 | } | 426 | } |
@@ -650,6 +658,8 @@ void __init smp_boot_cpus(void) | |||
650 | smp_tune_scheduling(); | 658 | smp_tune_scheduling(); |
651 | */ | 659 | */ |
652 | smp_store_cpu_info(boot_cpu_id); | 660 | smp_store_cpu_info(boot_cpu_id); |
661 | /* setup the jump vector */ | ||
662 | initial_code = (unsigned long)initialize_secondary; | ||
653 | printk("CPU%d: ", boot_cpu_id); | 663 | printk("CPU%d: ", boot_cpu_id); |
654 | print_cpu_info(&cpu_data(boot_cpu_id)); | 664 | print_cpu_info(&cpu_data(boot_cpu_id)); |
655 | 665 | ||
@@ -702,7 +712,7 @@ void __init smp_boot_cpus(void) | |||
702 | 712 | ||
703 | /* Reload the secondary CPUs task structure (this function does not | 713 | /* Reload the secondary CPUs task structure (this function does not |
704 | * return ) */ | 714 | * return ) */ |
705 | void __init initialize_secondary(void) | 715 | static void __init initialize_secondary(void) |
706 | { | 716 | { |
707 | #if 0 | 717 | #if 0 |
708 | // AC kernels only | 718 | // AC kernels only |