rcu: Add comment on evaluate-once properties of rcu_assign_pointer().
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 11 Oct 2013 17:17:39 +0000 (10:17 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 12 Dec 2013 20:19:08 +0000 (12:19 -0800)
commitac7c8e3dd2ed6489be1f6bc722029fb4855c3a34
tree40b1cd4b40f3fee8104cbf666cf930b24531cc6d
parentdc1ccc48159d63eca5089e507c82c7d22ef60839
rcu: Add comment on evaluate-once properties of rcu_assign_pointer().

The rcu_assign_pointer() macro, as with most cpp macros, must not evaluate
its argument more than once.  And it in fact does not.  But this might
not be obvious to the casual observer, because one of the arguments
appears no less than three times.  However, but one expansion is only
visible to sparse (__CHECKER__), and one lives inside a typeof (where
it will never be evaluated), so this is in fact safe.

This commit therefore adds a comment making this explicit.

Reported-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
include/linux/rcupdate.h