Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a259b242 authored by Mathieu Desnoyers's avatar Mathieu Desnoyers Committed by Linus Torvalds
Browse files

Add cmpxchg64 and cmpxchg64_local to alpha



Make sure that at least cmpxchg64_local is available on all architectures to use
for unsigned long long values.

Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 068fbad2
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -688,6 +688,11 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
     (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_,		 \
				    (unsigned long)_n_, sizeof(*(ptr))); \
  })
#define cmpxchg64(ptr, o, n)						 \
  ({									 \
	BUILD_BUG_ON(sizeof(*(ptr)) != 8);				 \
	cmpxchg((ptr), (o), (n));					 \
  })

static inline unsigned long
__cmpxchg_u8_local(volatile char *m, long old, long new)
@@ -810,6 +815,12 @@ __cmpxchg_local(volatile void *ptr, unsigned long old, unsigned long new,
     (__typeof__(*(ptr))) __cmpxchg_local((ptr), (unsigned long)_o_,	 \
				    (unsigned long)_n_, sizeof(*(ptr))); \
  })
#define cmpxchg64_local(ptr, o, n)					 \
  ({									 \
	BUILD_BUG_ON(sizeof(*(ptr)) != 8);				 \
	cmpxchg_local((ptr), (o), (n));					 \
  })


#endif /* __ASSEMBLY__ */