summaryrefslogtreecommitdiffstats
path: root/Documentation/RCU
diff options
context:
space:
mode:
authorMilos Vyletel <milos@redhat.com>2015-04-17 16:38:04 +0200
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-05-27 21:57:28 +0200
commited38446424dd531f1b7a167677232a6d400d69d5 (patch)
tree061898389cefd9fd56264e1b4391134cd42e2cac /Documentation/RCU
parentdocumentation: Update rcu_dereference.txt based on WG21 discussions (diff)
downloadlinux-ed38446424dd531f1b7a167677232a6d400d69d5.tar.xz
linux-ed38446424dd531f1b7a167677232a6d400d69d5.zip
documentation: State that rcu_dereference() reloads pointer
Make a note stating that repeated calls of rcu_dereference() may not return the same pointer if update happens while in critical section. Reported-by: Jeff Haran <jeff.haran@citrix.com> Signed-off-by: Milos Vyletel <milos@redhat.com> Reviewed-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'Documentation/RCU')
-rw-r--r--Documentation/RCU/whatisRCU.txt4
1 files changed, 3 insertions, 1 deletions
diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt
index 88dfce182f66..16622c9e86b5 100644
--- a/Documentation/RCU/whatisRCU.txt
+++ b/Documentation/RCU/whatisRCU.txt
@@ -256,7 +256,9 @@ rcu_dereference()
If you are going to be fetching multiple fields from the
RCU-protected structure, using the local variable is of
course preferred. Repeated rcu_dereference() calls look
- ugly and incur unnecessary overhead on Alpha CPUs.
+ ugly, do not guarantee that the same pointer will be returned
+ if an update happened while in the critical section, and incur
+ unnecessary overhead on Alpha CPUs.
Note that the value returned by rcu_dereference() is valid
only within the enclosing RCU read-side critical section.