summaryrefslogtreecommitdiff
path: root/include/asm-i386/spinlock.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2006-09-26 10:52:39 +0200
committerAndi Kleen <andi@basil.nowhere.org>2006-09-26 10:52:39 +0200
commit0da5db313317e3195482d3e660a1074857374a89 (patch)
tree9322a8eb60da97ae5f3a199cec13afd9b34c202d /include/asm-i386/spinlock.h
parent7b0bda74f7e77f362eaeee837e7911238acf4c76 (diff)
downloadlinux-3.10-0da5db313317e3195482d3e660a1074857374a89.tar.gz
linux-3.10-0da5db313317e3195482d3e660a1074857374a89.tar.bz2
linux-3.10-0da5db313317e3195482d3e660a1074857374a89.zip
[PATCH] i386: Abstract sensitive instructions
Abstract sensitive instructions in assembler code, replacing them with macros (which currently are #defined to the native versions). We use long names: assembler is case-insensitive, so if something goes wrong and macros do not expand, it would assemble anyway. Resulting object files are exactly the same as before. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include/asm-i386/spinlock.h')
-rw-r--r--include/asm-i386/spinlock.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/asm-i386/spinlock.h b/include/asm-i386/spinlock.h
index 324329313af..b0b3043f05e 100644
--- a/include/asm-i386/spinlock.h
+++ b/include/asm-i386/spinlock.h
@@ -7,6 +7,9 @@
#include <asm/processor.h>
#include <linux/compiler.h>
+#define CLI_STRING "cli"
+#define STI_STRING "sti"
+
/*
* Your basic SMP spinlocks, allowing only a single CPU anywhere
*
@@ -55,12 +58,12 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long fla
"2:\t"
"testl $0x200, %1\n\t"
"jz 4f\n\t"
- "sti\n"
+ STI_STRING "\n"
"3:\t"
"rep;nop\n\t"
"cmpb $0, %0\n\t"
"jle 3b\n\t"
- "cli\n\t"
+ CLI_STRING "\n\t"
"jmp 1b\n"
"4:\t"
"rep;nop\n\t"