 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86_32: Fix _raw_read_trylock() build on some gcc versions.
 # HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1301214635 -3600
# Node ID 0bc1c4746c8939337f693a513fd837fc03477db1
# Parent  48dac730a93b27ff60a340564e9a7afd7f9385f4
x86_32: Fix _raw_read_trylock() build on some gcc versions.
Was broken by 23099:612171ff82ea.
A bool_t is a single byte, and needs a 'q' register constraint. Avoid
the whole issue by changing the variable to an int, and explicitly
specify the operand suffix as 'l' for good measure.
Signed-off-by: Keir Fraser <keir@xxxxxxx>
---
diff -r 48dac730a93b -r 0bc1c4746c89 xen/include/asm-x86/spinlock.h
--- a/xen/include/asm-x86/spinlock.h    Sat Mar 26 09:42:01 2011 +0000
+++ b/xen/include/asm-x86/spinlock.h    Sun Mar 27 09:30:35 2011 +0100
@@ -40,14 +40,14 @@
 
 static always_inline int _raw_read_trylock(raw_rwlock_t *rw)
 {
-    bool_t acquired;
+    int acquired;
 
     asm volatile (
         "    lock; decl %0         \n"
         "    jns 2f                \n"
         "1:  .subsection 1         \n"
         "2:  lock; incl %0         \n"
-        "    dec %1                \n"
+        "    decl %1               \n"
         "    jmp 1b                \n"
         "    .subsection 0         \n"
         : "=m" (rw->lock), "=r" (acquired) : "1" (1) : "memory" );
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |