summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorZwane Mwaikambo <zwane@arm.linux.org.uk>2006-01-11 22:43:09 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-11 19:01:57 -0800
commit329d400f47ddfe8ff599823d739c5c5565da3207 (patch)
tree903b45e7ebcccbbd8172e207315c036ceb70f6e8 /include
parent73ca5358aab55e2e29993a31f3776c54c05ae729 (diff)
downloadop-kernel-dev-329d400f47ddfe8ff599823d739c5c5565da3207.zip
op-kernel-dev-329d400f47ddfe8ff599823d739c5c5565da3207.tar.gz
[PATCH] x86_64/i386: Remove preempt disable calls in lowlevel IPI
I noticed that some lowlevel send_IPI_mask helpers had a hotplug/preempt race whereupon the cpu_online_map was read before disabling preemption; ... cpumask_t mask = cpu_online_map; int cpu = get_cpu(); cpu_clear(cpu, mask); ... But then i realised that there is no need for these lowlevel functions to be going through all this trouble when all the callers are already made hotplug/preempt safe. Signed-off-by: Zwane Mwaikambo <zwane@arm.linux.org.uk> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/mach-default/mach_ipi.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/include/asm-i386/mach-default/mach_ipi.h b/include/asm-i386/mach-default/mach_ipi.h
index cc756a6..a1d0072 100644
--- a/include/asm-i386/mach-default/mach_ipi.h
+++ b/include/asm-i386/mach-default/mach_ipi.h
@@ -15,11 +15,9 @@ static inline void __local_send_IPI_allbutself(int vector)
{
if (no_broadcast) {
cpumask_t mask = cpu_online_map;
- int this_cpu = get_cpu();
- cpu_clear(this_cpu, mask);
+ cpu_clear(smp_processor_id(), mask);
send_IPI_mask(mask, vector);
- put_cpu();
} else
__send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
}
OpenPOWER on IntegriCloud