summaryrefslogtreecommitdiffstats
path: root/Documentation/core-api
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-04-19 23:30:37 +0200
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-06-08 17:25:28 +0200
commit79269ee3fa1da52f392f8a4ebf3082152c1c8c58 (patch)
treebebc09432aff96b833aefc92b85e51982bfa4c3e /Documentation/core-api
parentrcuperf: Add test for dynamically initialized srcu_struct (diff)
downloadlinux-79269ee3fa1da52f392f8a4ebf3082152c1c8c58.tar.xz
linux-79269ee3fa1da52f392f8a4ebf3082152c1c8c58.zip
doc/atomic_ops: Clarify smp_mb__{before,after}_atomic()
This commit explicitly states that surrounding a non-value-returning atomic read-modify atomic operations provides full ordering, just as is provided by value-returning atomic read-modify-write operations. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/core-api')
-rw-r--r--Documentation/core-api/atomic_ops.rst5
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/core-api/atomic_ops.rst b/Documentation/core-api/atomic_ops.rst
index 55e43f1c80de..fce929144ccd 100644
--- a/Documentation/core-api/atomic_ops.rst
+++ b/Documentation/core-api/atomic_ops.rst
@@ -303,6 +303,11 @@ defined which accomplish this::
void smp_mb__before_atomic(void);
void smp_mb__after_atomic(void);
+Preceding a non-value-returning read-modify-write atomic operation with
+smp_mb__before_atomic() and following it with smp_mb__after_atomic()
+provides the same full ordering that is provided by value-returning
+read-modify-write atomic operations.
+
For example, smp_mb__before_atomic() can be used like so::
obj->dead = 1;