]> err.no Git - linux-2.6/blobdiff - include/asm-i386/spinlock.h
Merge mulgrave-w:git/linux-2.6
[linux-2.6] / include / asm-i386 / spinlock.h
index d816c62a7a1d1d9fe94ea16c1a7ebf2747a6e0ac..d1020363c41ab744cebcb2ae4896849fbe10c6b2 100644 (file)
@@ -22,7 +22,7 @@
 
 #define __raw_spin_lock_string \
        "\n1:\t" \
-       "lock ; decb %0\n\t" \
+       LOCK_PREFIX " ; decb %0\n\t" \
        "jns 3f\n" \
        "2:\t" \
        "rep;nop\n\t" \
@@ -38,7 +38,7 @@
  */
 #define __raw_spin_lock_string_flags \
        "\n1:\t" \
-       "lock ; decb %0\n\t" \
+       LOCK_PREFIX " ; decb %0\n\t" \
        "jns 5f\n" \
        "2:\t" \
        "testl $0x200, %1\n\t" \
        "jmp 4b\n" \
        "5:\n\t"
 
-#define __raw_spin_lock_string_up \
-       "\n\tdecb %0"
-
 static inline void __raw_spin_lock(raw_spinlock_t *lock)
 {
-       alternative_smp(
-               __raw_spin_lock_string,
-               __raw_spin_lock_string_up,
-               "+m" (lock->slock) : : "memory");
+       asm(__raw_spin_lock_string : "+m" (lock->slock) : : "memory");
 }
 
 /*
@@ -76,10 +70,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)
 #ifndef CONFIG_PROVE_LOCKING
 static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
 {
-       alternative_smp(
-               __raw_spin_lock_string_flags,
-               __raw_spin_lock_string_up,
-               "+m" (lock->slock) : "r" (flags) : "memory");
+       asm(__raw_spin_lock_string_flags : "+m" (lock->slock) : "r" (flags) : "memory");
 }
 #endif