diff options
Diffstat (limited to 'include/asm-x86_64/atomic.h')
-rw-r--r-- | include/asm-x86_64/atomic.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/asm-x86_64/atomic.h b/include/asm-x86_64/atomic.h index 007e88d6d43f..706ca4b60000 100644 --- a/include/asm-x86_64/atomic.h +++ b/include/asm-x86_64/atomic.h | |||
@@ -21,7 +21,7 @@ | |||
21 | * on us. We need to use _exactly_ the address the user gave us, | 21 | * on us. We need to use _exactly_ the address the user gave us, |
22 | * not some alias that contains the same information. | 22 | * not some alias that contains the same information. |
23 | */ | 23 | */ |
24 | typedef struct { volatile int counter; } atomic_t; | 24 | typedef struct { int counter; } atomic_t; |
25 | 25 | ||
26 | #define ATOMIC_INIT(i) { (i) } | 26 | #define ATOMIC_INIT(i) { (i) } |
27 | 27 | ||
@@ -189,9 +189,9 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) | |||
189 | { | 189 | { |
190 | int __i = i; | 190 | int __i = i; |
191 | __asm__ __volatile__( | 191 | __asm__ __volatile__( |
192 | LOCK_PREFIX "xaddl %0, %1;" | 192 | LOCK_PREFIX "xaddl %0, %1" |
193 | :"=r"(i) | 193 | :"+r" (i), "+m" (v->counter) |
194 | :"m"(v->counter), "0"(i)); | 194 | : : "memory"); |
195 | return i + __i; | 195 | return i + __i; |
196 | } | 196 | } |
197 | 197 | ||