]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-avr32/atomic.h
synclink drivers bool conversion
[linux-2.6-omap-h63xx.git] / include / asm-avr32 / atomic.h
index c40b6032c48027655b972b7c0e603dc82c7eb492..7ef3862a73d02443d95eaf6520ff45417f3f00d5 100644 (file)
@@ -101,7 +101,7 @@ static inline int atomic_sub_unless(atomic_t *v, int a, int u)
                "       mov     %1, 1\n"
                "1:"
                : "=&r"(tmp), "=&r"(result), "=o"(v->counter)
-               : "m"(v->counter), "rKs21"(a), "rKs21"(u)
+               : "m"(v->counter), "rKs21"(a), "rKs21"(u), "1"(result)
                : "cc", "memory");
 
        return result;
@@ -137,7 +137,7 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
                        "       mov     %1, 1\n"
                        "1:"
                        : "=&r"(tmp), "=&r"(result), "=o"(v->counter)
-                       : "m"(v->counter), "r"(a), "ir"(u)
+                       : "m"(v->counter), "r"(a), "ir"(u), "1"(result)
                        : "cc", "memory");
        }
 
@@ -173,7 +173,7 @@ static inline int atomic_sub_if_positive(int i, atomic_t *v)
 }
 
 #define atomic_xchg(v, new)    (xchg(&((v)->counter), new))
-#define atomic_cmpxchg(v, o, n)        ((int)cmpxchg(&((v)->counter), (o), (n)))
+#define atomic_cmpxchg(v, o, n)        (cmpxchg(&((v)->counter), (o), (n)))
 
 #define atomic_sub(i, v)       (void)atomic_sub_return(i, v)
 #define atomic_add(i, v)       (void)atomic_add_return(i, v)