diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 13:30:34 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:30:34 +0100 |
commit | 3b23ed84ec34f04f54f7d5b1e35f258d64a7a5fb (patch) | |
tree | b78e155e003dd854b9947eb06f9f79c32df8d4f7 | |
parent | 6514f93a2ce643ef5914eae7ce49b978e1d356aa (diff) |
x86: spinlock_32/64 match the jump labels and symbols
Match the jump labels in the 32/64 variants and switch the
64bit version to symbols, so the functions are almost identical
except for the operand size now.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-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 |