|
@@ -207,8 +207,8 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v)
|
|
|
return atomic_add_return(-i,v);
|
|
|
}
|
|
|
|
|
|
-#define atomic_cmpxchg(v, old, new) ((int)cmpxchg(&((v)->counter), old, new))
|
|
|
-#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
|
|
+#define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
|
|
|
+#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
|
|
|
|
|
|
/**
|
|
|
* atomic_add_unless - add unless the number is already a given value
|
|
@@ -221,7 +221,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v)
|
|
|
*/
|
|
|
#define atomic_add_unless(v, a, u) \
|
|
|
({ \
|
|
|
- int c, old; \
|
|
|
+ __typeof__((v)->counter) c, old; \
|
|
|
c = atomic_read(v); \
|
|
|
for (;;) { \
|
|
|
if (unlikely(c == (u))) \
|