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 f7a52f4a21a5..86f7edcd0438 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -243,6 +243,11 @@ static void __cpuinit smp_callin(void) | |||
243 | map_cpu_to_logical_apicid(); | 243 | map_cpu_to_logical_apicid(); |
244 | 244 | ||
245 | notify_cpu_starting(cpuid); | 245 | notify_cpu_starting(cpuid); |
246 | |||
247 | /* | ||
248 | * Need to setup vector mappings before we enable interrupts. | ||
249 | */ | ||
250 | __setup_vector_irq(smp_processor_id()); | ||
246 | /* | 251 | /* |
247 | * Get our bogomips. | 252 | * Get our bogomips. |
248 | * | 253 | * |
@@ -317,7 +322,6 @@ notrace static void __cpuinit start_secondary(void *unused) | |||
317 | */ | 322 | */ |
318 | ipi_call_lock(); | 323 | ipi_call_lock(); |
319 | lock_vector_lock(); | 324 | lock_vector_lock(); |
320 | __setup_vector_irq(smp_processor_id()); | ||
321 | set_cpu_online(smp_processor_id(), true); | 325 | set_cpu_online(smp_processor_id(), true); |
322 | unlock_vector_lock(); | 326 | unlock_vector_lock(); |
323 | ipi_call_unlock(); | 327 | ipi_call_unlock(); |
@@ -1216,11 +1220,12 @@ __init void prefill_possible_map(void) | |||
1216 | 1220 | ||
1217 | total_cpus = max_t(int, possible, num_processors + disabled_cpus); | 1221 | total_cpus = max_t(int, possible, num_processors + disabled_cpus); |
1218 | 1222 | ||
1219 | if (possible > CONFIG_NR_CPUS) { | 1223 | /* nr_cpu_ids could be reduced via nr_cpus= */ |
1224 | if (possible > nr_cpu_ids) { | ||
1220 | printk(KERN_WARNING | 1225 | printk(KERN_WARNING |
1221 | "%d Processors exceeds NR_CPUS limit of %d\n", | 1226 | "%d Processors exceeds NR_CPUS limit of %d\n", |
1222 | possible, CONFIG_NR_CPUS); | 1227 | possible, nr_cpu_ids); |
1223 | possible = CONFIG_NR_CPUS; | 1228 | possible = nr_cpu_ids; |
1224 | } | 1229 | } |
1225 | 1230 | ||
1226 | printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n", | 1231 | printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n", |