documentation: Correct doc to use rcu_dereference_protected
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 11 Aug 2015 12:26:33 +0000 (14:26 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 6 Oct 2015 18:22:43 +0000 (11:22 -0700)
commit2c4ac34bc2d97f056ed3c43fa03c0737fae46fb6
treee0a0fd8523214a4e3fe653e8b74c2d85013f0398
parentda873def8da5883a6c04d11f73dcd836c216cf4f
documentation: Correct doc to use rcu_dereference_protected

As there is lots of misinformation and outdated information on the
Internet about nearly all topics related to the kernel, I thought it
would be best if I based my RCU code on the guidelines of the examples
in the Documentation/ tree of the latest kernel. One thing that stuck
out when reading the whatisRCU.txt document was, "interesting how we
don't need any function to dereference rcu protected pointers when doing
updates if a lock is held. I wonder how static analyzers will work with
that." Then, a few weeks later, upon discovering sparse's __rcu support,
I ran it over my code, and lo and behold, things weren't done right.
Examining other RCU usages in the kernel reveal consistent usage of
rcu_dereference_protected, passing in lockdep_is_held as the
conditional. So, this patch adds that idiom to the documentation, so
that others ahead of me won't endure the same exercise.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Documentation/RCU/whatisRCU.txt