diff options
Diffstat (limited to 'include/asm-x86')
-rw-r--r-- | include/asm-x86/spinlock_32.h | 1 | ||||
-rw-r--r-- | include/asm-x86/spinlock_64.h | 21 |
2 files changed, 11 insertions, 11 deletions
diff --git a/include/asm-x86/spinlock_32.h b/include/asm-x86/spinlock_32.h index e7a14ab906e..4ef626d5368 100644 --- a/include/asm-x86/spinlock_32.h +++ b/include/asm-x86/spinlock_32.h @@ -53,7 +53,6 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, "\n1:\t" LOCK_PREFIX " ; decb %[slock]\n\t" "jns 5f\n" - "2:\t" "testl $0x200, %[flags]\n\t" "jz 4f\n\t" STI_STRING "\n" diff --git a/include/asm-x86/spinlock_64.h b/include/asm-x86/spinlock_64.h index ab50e7f5105..19d483c8018 100644 --- a/include/asm-x86/spinlock_64.h +++ b/include/asm-x86/spinlock_64.h @@ -27,13 +27,13 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) asm volatile( "\n1:\t" LOCK_PREFIX " ; decl %0\n\t" - "jns 2f\n" - "3:\n" + "jns 3f\n" + "2:\t" "rep;nop\n\t" "cmpl $0,%0\n\t" - "jle 3b\n\t" + "jle 2b\n\t" "jmp 1b\n" - "2:\t" + "3:\n\t" : "+m" (lock->slock) : : "memory"); } @@ -51,25 +51,26 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, { asm volatile( "\n1:\t" - LOCK_PREFIX " ; decl %0\n\t" + LOCK_PREFIX " ; decl %[slock]\n\t" "jns 5f\n" - "testl $0x200, %1\n\t" /* interrupts were disabled? */ + "testl $0x200, %[flags]\n\t" "jz 4f\n\t" STI_STRING "\n" "3:\t" "rep;nop\n\t" - "cmpl $0, %0\n\t" + "cmpl $0, %[slock]\n\t" "jle 3b\n\t" CLI_STRING "\n\t" "jmp 1b\n" "4:\t" "rep;nop\n\t" - "cmpl $0, %0\n\t" + "cmpl $0, %[slock]\n\t" "jg 1b\n\t" "jmp 4b\n" "5:\n\t" - : "+m" (lock->slock) - : "r" ((unsigned)flags) CLI_STI_INPUT_ARGS + : [slock] "+m" (lock->slock) + : [flags] "r" ((unsigned)flags) + CLI_STI_INPUT_ARGS : "memory" CLI_STI_CLOBBERS); } #endif |