]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
x86, ticketlock: Use asm volatile for __ticket_unlock_release()
authorH. Peter Anvin <hpa@linux.intel.com>
Fri, 22 Jul 2011 18:15:20 +0000 (11:15 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 22 Jul 2011 18:15:20 +0000 (11:15 -0700)
__ticket_uplock_release() really should have barrier semantics, so use
"asm volatile" there.

Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Link: http://lkml.kernel.org/r/4E050704.3070409@zytor.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/spinlock.h

index 704b0c39915ec40a703656d03160024e7279b38c..f8d51dc36366bed7c6143d6c978a89dc1dfe9750 100644 (file)
 static __always_inline void __ticket_unlock_release(struct arch_spinlock *lock)
 {
        if (sizeof(lock->tickets.head) == sizeof(u8))
-               asm (LOCK_PREFIX "incb %0"
-                    : "+m" (lock->tickets.head) : : "memory");
+               asm volatile(LOCK_PREFIX "incb %0"
+                            : "+m" (lock->tickets.head) : : "memory");
        else
-               asm (LOCK_PREFIX "incw %0"
-                    : "+m" (lock->tickets.head) : : "memory");
+               asm volatile(LOCK_PREFIX "incw %0"
+                            : "+m" (lock->tickets.head) : : "memory");
 
 }
 #else