Pārlūkot izejas kodu

[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>
Andi Kleen 19 gadi atpakaļ
vecāks
revīzija
e2c0388866

+ 6 - 0
arch/x86_64/kernel/setup.c

@@ -423,6 +423,12 @@ static __init void parse_cmdline_early (char ** cmdline_p)
 		else if(!memcmp(from, "elfcorehdr=", 11))
 		else if(!memcmp(from, "elfcorehdr=", 11))
 			elfcorehdr_addr = memparse(from+11, &from);
 			elfcorehdr_addr = memparse(from+11, &from);
 #endif
 #endif
+
+#ifdef CONFIG_SMP
+		else if (!memcmp(from, "additional_cpus=", 16))
+			setup_additional_cpus(from+16);
+#endif
+
 	next_char:
 	next_char:
 		c = *(from++);
 		c = *(from++);
 		if (!c)
 		if (!c)

+ 1 - 1
arch/x86_64/kernel/smpboot.c

@@ -1244,7 +1244,7 @@ void __cpu_die(unsigned int cpu)
  	printk(KERN_ERR "CPU %u didn't die...\n", cpu);
  	printk(KERN_ERR "CPU %u didn't die...\n", cpu);
 }
 }
 
 
-static __init int setup_additional_cpus(char *s)
+__init int setup_additional_cpus(char *s)
 {
 {
 	return get_option(&s, &additional_cpus);
 	return get_option(&s, &additional_cpus);
 }
 }

+ 1 - 0
include/asm-x86_64/proto.h

@@ -134,6 +134,7 @@ extern int force_iommu;
 
 
 extern int reboot_force;
 extern int reboot_force;
 extern int notsc_setup(char *);
 extern int notsc_setup(char *);
+extern int setup_additional_cpus(char *);
 
 
 extern void smp_local_timer_interrupt(struct pt_regs * regs);
 extern void smp_local_timer_interrupt(struct pt_regs * regs);