diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-22 14:22:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-22 14:22:15 -0400 |
commit | 55acdddbac1725b80df0c41970505e8a41c84956 (patch) | |
tree | cf0eeda5d382fe40ed3d14b74e9148e587282c0e /arch/x86/kernel/smpboot.c | |
parent | 2eafeb6a415864bc4c59df79151cf40f6ac74b9e (diff) | |
parent | b871a42b6091b720e82ddff237659534c525c25b (diff) |
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull smp/hotplug changes from Ingo Molnar:
"Various cleanups to the SMP hotplug code - a continuing effort of
Thomas et al"
* 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
smpboot: Remove leftover declaration
smp: Remove num_booting_cpus()
smp: Remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
POWERPC: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
SPARC: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
ia64: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
x86-smp-remove-call-to-ipi_call_lock-ipi_call_unlock
tile: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
S390: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
parisc: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
mn10300: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
hexagon: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 7bd8a0823654..27e2eeff7a4b 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 | ||