s390: uatomic add missing xchg return
authorMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Tue, 1 Dec 2009 19:09:47 +0000 (14:09 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Tue, 1 Dec 2009 19:09:47 +0000 (14:09 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
urcu/uatomic_arch_s390.h

index f8e8dffa6c04e5d2e74599fea8b3c9c11dddf8f4..a8c8706e7b10c372ffe065394772b3c5089edbcb 100644 (file)
@@ -63,6 +63,7 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len)
                        : "=&r"(old_val), "=m" (*addr)
                        : "r"(val), "m" (*addr)
                        : "memory", "cc");
+               return old_val;
        }
 #if (BITS_PER_LONG == 64)
        case 8:
@@ -75,6 +76,7 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len)
                        : "=&r"(old_val), "=m" (*addr)
                        : "r"(val), "m" (*addr)
                        : "memory", "cc");
+               return old_val;
        }
 #endif
        default:
@@ -92,7 +94,7 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len)
 
 static inline __attribute__((always_inline))
 unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
-                              unsigned long new, int len)
+                              unsigned long _new, int len)
 {
        switch (len) {
        case 4:
@@ -102,7 +104,7 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
                __asm__ __volatile__(
                        "       cs %0,%2,%1\n"
                        : "+r"(old_val), "+m"(*addr)
-                       : "r"(new)
+                       : "r"(_new)
                        : "memory", "cc");
                return old_val;
        }
@@ -112,7 +114,7 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
                __asm__ __volatile__(
                        "       csg %0,%2,%1\n"
                        : "+r"(old), "+m"(*addr)
-                       : "r"(new)
+                       : "r"(_new)
                        : "memory", "cc");
                return old;
        }
@@ -124,10 +126,10 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
        return 0;
 }
 
-#define uatomic_cmpxchg(addr, old, new)                                        \
+#define uatomic_cmpxchg(addr, old, _new)                               \
        (__typeof__(*(addr))) _uatomic_cmpxchg((addr),                  \
                                               (unsigned long)(old),    \
-                                              (unsigned long)(new),    \
+                                              (unsigned long)(_new),   \
                                               sizeof(*(addr)))
 
 /* uatomic_add_return */
This page took 0.025603 seconds and 4 git commands to generate.