path: root/Documentation/memory-barriers.txt
diff options
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-07-02 15:24:09 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2013-08-19 21:39:42 -0700
commit45c8a36a5519960638a4f331839bb99c1994fd04 (patch)
tree58ddb29830df06a0a87524f4514c299bb22988c7 /Documentation/memory-barriers.txt
parent6ae3771850910018c89b4ce063c52008bf2c8d6a (diff)
doc: Fix memory-barrier control-dependency example
Each control-dependency example needs its barriers between the "if" condition and the body of the "if" because a control dependency is a dependency induced by a branch. This commit makes the needed adjustment. Reported-by: Yongming Shen <symingz@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'Documentation/memory-barriers.txt')
1 files changed, 6 insertions, 4 deletions
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index fa5d8a9ae205..c8c42e64e953 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -531,9 +531,10 @@ dependency barrier to make it work correctly. Consider the following bit of
q = &a;
- if (p)
+ if (p) {
+ <data dependency barrier>
q = &b;
- <data dependency barrier>
+ }
x = *q;
This will not have the desired effect because there is no actual data
@@ -542,9 +543,10 @@ attempting to predict the outcome in advance. In such a case what's actually
required is:
q = &a;
- if (p)
+ if (p) {
+ <read barrier>
q = &b;
- <read barrier>
+ }
x = *q;