summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-04-07 21:45:41 +0200
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-05-27 21:57:28 +0200
commitee7c29be3695996536395f647e8a2ed6b1ab3a0d (patch)
treebf95316c3de33b26493c460bd69e9144947c0e4f
parentdocumentation: memory-barriers: Fix smp_mb__before_spinlock() semantics (diff)
downloadlinux-ee7c29be3695996536395f647e8a2ed6b1ab3a0d.tar.xz
linux-ee7c29be3695996536395f647e8a2ed6b1ab3a0d.zip
documentation: Update rcu_dereference.txt based on WG21 discussions
This commit provides another caveat for the care and feeding of pointers returned by rcu_dereference() that was pointed out in discussions within the C++ standards committee. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-rw-r--r--Documentation/RCU/rcu_dereference.txt5
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/RCU/rcu_dereference.txt b/Documentation/RCU/rcu_dereference.txt
index ceb05da5a5ac..2d05c9241a33 100644
--- a/Documentation/RCU/rcu_dereference.txt
+++ b/Documentation/RCU/rcu_dereference.txt
@@ -193,6 +193,11 @@ o Be very careful about comparing pointers obtained from
pointer. Note that the volatile cast in rcu_dereference()
will normally prevent the compiler from knowing too much.
+ However, please note that if the compiler knows that the
+ pointer takes on only one of two values, a not-equal
+ comparison will provide exactly the information that the
+ compiler needs to deduce the value of the pointer.
+
o Disable any value-speculation optimizations that your compiler
might provide, especially if you are making use of feedback-based
optimizations that take data collected from prior runs. Such