Documentation/memory-barriers.txt: Conditional must use prior load
A control dependency consists of a load, a conditional that depends on
that load, and a store. This commit emphasizes this point in the
summary.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index f9ff060..6b25efd 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -724,7 +724,8 @@
later loads, smp_mb().
(*) Control dependencies require at least one run-time conditional
- between the prior load and the subsequent store. If the compiler
+ between the prior load and the subsequent store, and this
+ conditional must involve the prior load. If the compiler
is able to optimize the conditional away, it will have also
optimized away the ordering. Careful use of ACCESS_ONCE() can
help to preserve the needed conditional.