summaryrefslogtreecommitdiffstats
path: root/include/linux/rcupdate.h
diff options
context:
space:
mode:
authorPaul E. McKenney2014-03-31 22:13:02 +0200
committerPaul E. McKenney2014-04-29 17:45:13 +0200
commit71a9b26963f8c2d0df6f782e2b29ccefc22d4fba (patch)
tree7455596d0d31cf2f4a0a3c42359ace0e703a313c /include/linux/rcupdate.h
parentrcu: Merge rcu_sched_force_quiescent_state() with rcu_force_quiescent_state() (diff)
downloadkernel-qcow2-linux-71a9b26963f8c2d0df6f782e2b29ccefc22d4fba.tar.gz
kernel-qcow2-linux-71a9b26963f8c2d0df6f782e2b29ccefc22d4fba.tar.xz
kernel-qcow2-linux-71a9b26963f8c2d0df6f782e2b29ccefc22d4fba.zip
rcu: Document RCU_INIT_POINTER()'s lack of ordering guarantees
Although rcu_assign_pointer() provides ordering guarantees, RCU_INIT_POINTER() does not. This commit makes that explicit in the docbook comment header. Reported-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r--include/linux/rcupdate.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index fdc422f3d61d..3c5ef02ea580 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -949,6 +949,9 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
* pointers, but you must use rcu_assign_pointer() to initialize the
* external-to-structure pointer -after- you have completely initialized
* the reader-accessible portions of the linked structure.
+ *
+ * Note that unlike rcu_assign_pointer(), RCU_INIT_POINTER() provides no
+ * ordering guarantees for either the CPU or the compiler.
*/
#define RCU_INIT_POINTER(p, v) \
do { \