diff options
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 9b4401115ea1..a435c76d714e 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -241,6 +241,11 @@ static void __cpuinit smp_callin(void) | |||
241 | map_cpu_to_logical_apicid(); | 241 | map_cpu_to_logical_apicid(); |
242 | 242 | ||
243 | notify_cpu_starting(cpuid); | 243 | notify_cpu_starting(cpuid); |
244 | |||
245 | /* | ||
246 | * Need to setup vector mappings before we enable interrupts. | ||
247 | */ | ||
248 | __setup_vector_irq(smp_processor_id()); | ||
244 | /* | 249 | /* |
245 | * Get our bogomips. | 250 | * Get our bogomips. |
246 | * | 251 | * |
@@ -315,7 +320,6 @@ notrace static void __cpuinit start_secondary(void *unused) | |||
315 | */ | 320 | */ |
316 | ipi_call_lock(); | 321 | ipi_call_lock(); |
317 | lock_vector_lock(); | 322 | lock_vector_lock(); |
318 | __setup_vector_irq(smp_processor_id()); | ||
319 | set_cpu_online(smp_processor_id(), true); | 323 | set_cpu_online(smp_processor_id(), true); |
320 | unlock_vector_lock(); | 324 | unlock_vector_lock(); |
321 | ipi_call_unlock(); | 325 | ipi_call_unlock(); |
@@ -1212,11 +1216,12 @@ __init void prefill_possible_map(void) | |||
1212 | 1216 | ||
1213 | total_cpus = max_t(int, possible, num_processors + disabled_cpus); | 1217 | total_cpus = max_t(int, possible, num_processors + disabled_cpus); |
1214 | 1218 | ||
1215 | if (possible > CONFIG_NR_CPUS) { | 1219 | /* nr_cpu_ids could be reduced via nr_cpus= */ |
1220 | if (possible > nr_cpu_ids) { | ||
1216 | printk(KERN_WARNING | 1221 | printk(KERN_WARNING |
1217 | "%d Processors exceeds NR_CPUS limit of %d\n", | 1222 | "%d Processors exceeds NR_CPUS limit of %d\n", |
1218 | possible, CONFIG_NR_CPUS); | 1223 | possible, nr_cpu_ids); |
1219 | possible = CONFIG_NR_CPUS; | 1224 | possible = nr_cpu_ids; |
1220 | } | 1225 | } |
1221 | 1226 | ||
1222 | printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n", | 1227 | printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n", |