• Jason A. Donenfeld's avatar
    documentation: Correct doc to use rcu_dereference_protected · 2c4ac34b
    Jason A. Donenfeld authored
    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: default avatarJason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
whatisRCU.txt 38.2 KB