summaryrefslogtreecommitdiff
path: root/sys/external/bsd/common/include/linux
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2022-07-17 08:34:00 +0000
committerriastradh <riastradh@NetBSD.org>2022-07-17 08:34:00 +0000
commit23adf12ef9f4eec996fd8c71b681d0ea13abf598 (patch)
tree78f880e03b3ee5c15b4f57026a49568b0a1e07c9 /sys/external/bsd/common/include/linux
parent03591b33b3f0243e7d0755f6d7785f428eedda36 (diff)
linux/compiler.h: Add missing barriers in READ_ONCE, WRITE_ONCE.
Diffstat (limited to 'sys/external/bsd/common/include/linux')
-rw-r--r--sys/external/bsd/common/include/linux/compiler.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/external/bsd/common/include/linux/compiler.h b/sys/external/bsd/common/include/linux/compiler.h
index 294b577e675..8aadef736e8 100644
--- a/sys/external/bsd/common/include/linux/compiler.h
+++ b/sys/external/bsd/common/include/linux/compiler.h
@@ -1,4 +1,4 @@
-/* $NetBSD: compiler.h,v 1.8 2022/04/09 23:43:31 riastradh Exp $ */
+/* $NetBSD: compiler.h,v 1.9 2022/07/17 08:34:00 riastradh Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -62,6 +62,7 @@
BUILD_BUG_ON_ZERO(__same_type((X), &(X)[0]))
#define READ_ONCE(X) ({ \
+ __insn_barrier(); \
typeof(X) __read_once_tmp = (X); \
membar_datadep_consumer(); \
__read_once_tmp; \
@@ -69,7 +70,9 @@
#define WRITE_ONCE(X, V) ({ \
typeof(X) __write_once_tmp = (V); \
+ __insn_barrier(); \
(X) = __write_once_tmp; \
+ __insn_barrier(); \
__write_once_tmp; \
})