From: Will Deacon Date: Wed, 16 Oct 2019 00:30:47 +0000 (-0700) Subject: asm/rwonce: Allow __READ_ONCE to be overridden by the architecture X-Git-Tag: microblaze-v5.10~58^2~3^2~13 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=b78b331a3f5c0773171dadd6bbfa2a2242b45604;p=linux-2.6-microblaze.git 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: Peter Zijlstra (Intel) Acked-by: Paul E. McKenney Signed-off-by: Will Deacon --- diff --git a/include/asm-generic/rwonce.h b/include/asm-generic/rwonce.h index 87584379da43..04586b55a7c2 100644 --- a/include/asm-generic/rwonce.h +++ b/include/asm-generic/rwonce.h @@ -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) \ ({ \