aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-02-25 22:18:46 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-26 12:53:30 -0500
commite2c0388866dc12bef56b178b958f9b778fe6c687 (patch)
tree8a029b1e859215340fd7a029194bffdd7661e4c8
parent2eb1bdbad89b19c99f8ac1de1492cdabbff6b3d3 (diff)
[PATCH] x86_64: Fix the additional_cpus=.. option
It didn't set up the CPU possible map early enough, so the option didn't actually work. Noticed by Heiko Carstens Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/x86_64/kernel/setup.c6
-rw-r--r--arch/x86_64/kernel/smpboot.c2
-rw-r--r--include/asm-x86_64/proto.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 9435ab7d6fb8..5de7eaf5d97c 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -423,6 +423,12 @@ static __init void parse_cmdline_early (char ** cmdline_p)
423 else if(!memcmp(from, "elfcorehdr=", 11)) 423 else if(!memcmp(from, "elfcorehdr=", 11))
424 elfcorehdr_addr = memparse(from+11, &from); 424 elfcorehdr_addr = memparse(from+11, &from);
425#endif 425#endif
426
427#ifdef CONFIG_SMP
428 else if (!memcmp(from, "additional_cpus=", 16))
429 setup_additional_cpus(from+16);
430#endif
431
426 next_char: 432 next_char:
427 c = *(from++); 433 c = *(from++);
428 if (!c) 434 if (!c)
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c
index 67e4e28f4df8..b82eb86e4f5d 100644
--- a/arch/x86_64/kernel/smpboot.c
+++ b/arch/x86_64/kernel/smpboot.c
@@ -1244,7 +1244,7 @@ void __cpu_die(unsigned int cpu)
1244 printk(KERN_ERR "CPU %u didn't die...\n", cpu); 1244 printk(KERN_ERR "CPU %u didn't die...\n", cpu);
1245} 1245}
1246 1246
1247static __init int setup_additional_cpus(char *s) 1247__init int setup_additional_cpus(char *s)
1248{ 1248{
1249 return get_option(&s, &additional_cpus); 1249 return get_option(&s, &additional_cpus);
1250} 1250}
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h
index eca3f2d633db..8bdcbd0aa03f 100644
--- a/include/asm-x86_64/proto.h
+++ b/include/asm-x86_64/proto.h
@@ -134,6 +134,7 @@ extern int force_iommu;
134 134
135extern int reboot_force; 135extern int reboot_force;
136extern int notsc_setup(char *); 136extern int notsc_setup(char *);
137extern int setup_additional_cpus(char *);
137 138
138extern void smp_local_timer_interrupt(struct pt_regs * regs); 139extern void smp_local_timer_interrupt(struct pt_regs * regs);
139 140