diff options
-rw-r--r-- | arch/s390/include/asm/cmpxchg.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/include/asm/cmpxchg.h b/arch/s390/include/asm/cmpxchg.h index 13c8b2eb6983..26f2cb1aa9ff 100644 --- a/arch/s390/include/asm/cmpxchg.h +++ b/arch/s390/include/asm/cmpxchg.h | |||
@@ -113,9 +113,9 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, | |||
113 | " nr %1,%5\n" | 113 | " nr %1,%5\n" |
114 | " jnz 0b\n" | 114 | " jnz 0b\n" |
115 | "1:" | 115 | "1:" |
116 | : "=&d" (prev), "=&d" (tmp), "=Q" (*(int *) ptr) | 116 | : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) |
117 | : "d" (old << shift), "d" (new << shift), | 117 | : "d" (old << shift), "d" (new << shift), |
118 | "d" (~(255 << shift)), "Q" (*(int *) ptr) | 118 | "d" (~(255 << shift)) |
119 | : "memory", "cc"); | 119 | : "memory", "cc"); |
120 | return prev >> shift; | 120 | return prev >> shift; |
121 | case 2: | 121 | case 2: |
@@ -134,9 +134,9 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, | |||
134 | " nr %1,%5\n" | 134 | " nr %1,%5\n" |
135 | " jnz 0b\n" | 135 | " jnz 0b\n" |
136 | "1:" | 136 | "1:" |
137 | : "=&d" (prev), "=&d" (tmp), "=Q" (*(int *) ptr) | 137 | : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) |
138 | : "d" (old << shift), "d" (new << shift), | 138 | : "d" (old << shift), "d" (new << shift), |
139 | "d" (~(65535 << shift)), "Q" (*(int *) ptr) | 139 | "d" (~(65535 << shift)) |
140 | : "memory", "cc"); | 140 | : "memory", "cc"); |
141 | return prev >> shift; | 141 | return prev >> shift; |
142 | case 4: | 142 | case 4: |