diff options
| author | riastradh <riastradh@NetBSD.org> | 2022-07-17 08:34:00 +0000 |
|---|---|---|
| committer | riastradh <riastradh@NetBSD.org> | 2022-07-17 08:34:00 +0000 |
| commit | 23adf12ef9f4eec996fd8c71b681d0ea13abf598 (patch) | |
| tree | 78f880e03b3ee5c15b4f57026a49568b0a1e07c9 /sys/external/bsd/common/include/linux | |
| parent | 03591b33b3f0243e7d0755f6d7785f428eedda36 (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.h | 5 |
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; \ }) |
