Messages in this thread Patch in this message | | | From | Andrea Parri <> | Subject | [PATCH 2/2] compiler: Prevent evaluation of WRITE_ONCE() | Date | Fri, 24 May 2019 12:35:36 +0200 |
| |
Now that there's no single use of the value of WRITE_ONCE(), change the implementation to eliminate it.
Suggested-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Andrea Parri <andrea.parri@amarulasolutions.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jorgen Hansen <jhansen@vmware.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: "Paul E. McKenney" <paulmck@linux.ibm.com> --- include/linux/compiler.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 8aaf7cd026b06..4024c809a6c63 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -277,12 +277,11 @@ unsigned long read_word_at_a_time(const void *addr) } #define WRITE_ONCE(x, val) \ -({ \ +do { \ union { typeof(x) __val; char __c[1]; } __u = \ { .__val = (__force typeof(x)) (val) }; \ __write_once_size(&(x), __u.__c, sizeof(x)); \ - __u.__val; \ -}) +} while (0) #endif /* __KERNEL__ */ -- 2.7.4
| |