diff options
Diffstat (limited to 'arch/ia64/include/uapi/asm/cmpxchg.h')
-rw-r--r-- | arch/ia64/include/uapi/asm/cmpxchg.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/ia64/include/uapi/asm/cmpxchg.h b/arch/ia64/include/uapi/asm/cmpxchg.h index 4f37dbbb8640..f35109b1d907 100644 --- a/arch/ia64/include/uapi/asm/cmpxchg.h +++ b/arch/ia64/include/uapi/asm/cmpxchg.h | |||
@@ -118,6 +118,15 @@ extern long ia64_cmpxchg_called_with_bad_pointer(void); | |||
118 | #define cmpxchg_rel(ptr, o, n) \ | 118 | #define cmpxchg_rel(ptr, o, n) \ |
119 | ia64_cmpxchg(rel, (ptr), (o), (n), sizeof(*(ptr))) | 119 | ia64_cmpxchg(rel, (ptr), (o), (n), sizeof(*(ptr))) |
120 | 120 | ||
121 | /* | ||
122 | * Worse still - early processor implementations actually just ignored | ||
123 | * the acquire/release and did a full fence all the time. Unfortunately | ||
124 | * this meant a lot of badly written code that used .acq when they really | ||
125 | * wanted .rel became legacy out in the wild - so when we made a cpu | ||
126 | * that strictly did the .acq or .rel ... all that code started breaking - so | ||
127 | * we had to back-pedal and keep the "legacy" behavior of a full fence :-( | ||
128 | */ | ||
129 | |||
121 | /* for compatibility with other platforms: */ | 130 | /* for compatibility with other platforms: */ |
122 | #define cmpxchg(ptr, o, n) cmpxchg_acq((ptr), (o), (n)) | 131 | #define cmpxchg(ptr, o, n) cmpxchg_acq((ptr), (o), (n)) |
123 | #define cmpxchg64(ptr, o, n) cmpxchg_acq((ptr), (o), (n)) | 132 | #define cmpxchg64(ptr, o, n) cmpxchg_acq((ptr), (o), (n)) |