diff options
| -rw-r--r-- | arch/x86/kernel/smpboot.c | 9 | ||||
| -rw-r--r-- | arch/x86/xen/smp.c | 2 |
2 files changed, 0 insertions, 11 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index f56f96da77f5..b2fd28ff84b5 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
| @@ -255,22 +255,13 @@ notrace static void __cpuinit start_secondary(void *unused) | |||
| 255 | check_tsc_sync_target(); | 255 | check_tsc_sync_target(); |
| 256 | 256 | ||
| 257 | /* | 257 | /* |
| 258 | * We need to hold call_lock, so there is no inconsistency | ||
| 259 | * between the time smp_call_function() determines number of | ||
| 260 | * IPI recipients, and the time when the determination is made | ||
| 261 | * for which cpus receive the IPI. Holding this | ||
| 262 | * lock helps us to not include this cpu in a currently in progress | ||
| 263 | * smp_call_function(). | ||
| 264 | * | ||
| 265 | * We need to hold vector_lock so there the set of online cpus | 258 | * We need to hold vector_lock so there the set of online cpus |
| 266 | * does not change while we are assigning vectors to cpus. Holding | 259 | * does not change while we are assigning vectors to cpus. Holding |
| 267 | * this lock ensures we don't half assign or remove an irq from a cpu. | 260 | * this lock ensures we don't half assign or remove an irq from a cpu. |
| 268 | */ | 261 | */ |
| 269 | ipi_call_lock(); | ||
| 270 | lock_vector_lock(); | 262 | lock_vector_lock(); |
| 271 | set_cpu_online(smp_processor_id(), true); | 263 | set_cpu_online(smp_processor_id(), true); |
| 272 | unlock_vector_lock(); | 264 | unlock_vector_lock(); |
| 273 | ipi_call_unlock(); | ||
| 274 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; | 265 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; |
| 275 | x86_platform.nmi_init(); | 266 | x86_platform.nmi_init(); |
| 276 | 267 | ||
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index afb250d22a6b..f58dca7a6e52 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c | |||
| @@ -80,9 +80,7 @@ static void __cpuinit cpu_bringup(void) | |||
| 80 | 80 | ||
| 81 | notify_cpu_starting(cpu); | 81 | notify_cpu_starting(cpu); |
| 82 | 82 | ||
| 83 | ipi_call_lock(); | ||
| 84 | set_cpu_online(cpu, true); | 83 | set_cpu_online(cpu, true); |
| 85 | ipi_call_unlock(); | ||
| 86 | 84 | ||
| 87 | this_cpu_write(cpu_state, CPU_ONLINE); | 85 | this_cpu_write(cpu_state, CPU_ONLINE); |
| 88 | 86 | ||
