|
@@ -255,22 +255,13 @@ notrace static void __cpuinit start_secondary(void *unused)
|
|
|
check_tsc_sync_target();
|
|
|
|
|
|
/*
|
|
|
- * We need to hold call_lock, so there is no inconsistency
|
|
|
- * between the time smp_call_function() determines number of
|
|
|
- * IPI recipients, and the time when the determination is made
|
|
|
- * for which cpus receive the IPI. Holding this
|
|
|
- * lock helps us to not include this cpu in a currently in progress
|
|
|
- * smp_call_function().
|
|
|
- *
|
|
|
* We need to hold vector_lock so there the set of online cpus
|
|
|
* does not change while we are assigning vectors to cpus. Holding
|
|
|
* this lock ensures we don't half assign or remove an irq from a cpu.
|
|
|
*/
|
|
|
- ipi_call_lock();
|
|
|
lock_vector_lock();
|
|
|
set_cpu_online(smp_processor_id(), true);
|
|
|
unlock_vector_lock();
|
|
|
- ipi_call_unlock();
|
|
|
per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;
|
|
|
x86_platform.nmi_init();
|
|
|
|