aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/include/uapi/asm/cmpxchg.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/include/uapi/asm/cmpxchg.h')
-rw-r--r--arch/ia64/include/uapi/asm/cmpxchg.h9
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))