]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
x86, ticketlock: Use xadd helper
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Fri, 24 Jun 2011 01:19:20 +0000 (18:19 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 22 Jul 2011 18:19:05 +0000 (11:19 -0700)
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Link: http://lkml.kernel.org/r/aa7c94ecfbee05a6b8e455271ba0bb467bf33b2f.1308878118.git.jeremy.fitzhardinge@citrix.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/spinlock.h

index e07dc41c7c922b58b35ce531368a8a24c72d8af2..da196f1848bfd9ff437d10786533c96ea933f168 100644 (file)
@@ -71,14 +71,7 @@ static __always_inline struct __raw_tickets __ticket_spin_claim(struct arch_spin
 {
        register struct __raw_tickets tickets = { .tail = 1 };
 
-       if (sizeof(lock->tickets.head) == sizeof(u8))
-               asm volatile (LOCK_PREFIX "xaddw %w0, %1\n"
-                             : "+r" (tickets), "+m" (lock->tickets)
-                             : : "memory", "cc");
-       else
-               asm volatile (LOCK_PREFIX "xaddl %0, %1\n"
-                            : "+r" (tickets), "+m" (lock->tickets)
-                            : : "memory", "cc");
+       xadd(&lock->tickets, tickets);
 
        return tickets;
 }