mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
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>
This commit is contained in:
parent
6ae3771850
commit
45c8a36a55
@ -531,9 +531,10 @@ dependency barrier to make it work correctly. Consider the following bit of
|
||||
code:
|
||||
|
||||
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;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user