Commit b78b331a authored by Will Deacon's avatar Will Deacon
Browse files

asm/rwonce: Allow __READ_ONCE to be overridden by the architecture



The meat and potatoes of READ_ONCE() is defined by the __READ_ONCE()
macro, which uses a volatile casts in an attempt to avoid tearing of
byte, halfword, word and double-word accesses. Allow this to be
overridden by the architecture code in the case that things like memory
barriers are also required.

Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent e506ea45
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -43,7 +43,9 @@
 * atomicity or dependency ordering guarantees. Note that this may result
 * in tears!
 */
#ifndef __READ_ONCE
#define __READ_ONCE(x)	(*(const volatile __unqual_scalar_typeof(x) *)&(x))
#endif

#define __READ_ONCE_SCALAR(x)						\
({									\