diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-02-22 17:04:46 -0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-02-25 09:41:00 +0100 |
commit | c26d34a5858f96a564c45048bf5f09319d2abad1 (patch) | |
tree | 644941c0005b8ecda4f5af3fd9f9c385f911f146 /include/linux/srcu.h | |
parent | 632ee200130899252508c478ad0e808222573fbc (diff) | |
download | linux-stable-c26d34a5858f96a564c45048bf5f09319d2abad1.tar.gz linux-stable-c26d34a5858f96a564c45048bf5f09319d2abad1.tar.bz2 linux-stable-c26d34a5858f96a564c45048bf5f09319d2abad1.zip |
rcu: Add lockdep-enabled variants of rcu_dereference()
Make rcu_dereference() check for being in an RCU read-side
critical section, and create rcu_dereference_bh(),
rcu_dereference_sched(), and srcu_dereference() to check for the
other flavors of RCU. Also create rcu_dereference_raw() to
avoid checking, and make rcu_dereference_check() use
rcu_dereference_raw().
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
LKML-Reference: <1266887105-1528-2-git-send-email-paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/srcu.h')
-rw-r--r-- | include/linux/srcu.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/srcu.h b/include/linux/srcu.h index adbe1670b366..3084f80909cd 100644 --- a/include/linux/srcu.h +++ b/include/linux/srcu.h @@ -106,6 +106,14 @@ static inline int srcu_read_lock_held(struct srcu_struct *sp) #endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */ /** + * srcu_dereference - fetch SRCU-protected pointer with checking + * + * Makes rcu_dereference_check() do the dirty work. + */ +#define srcu_dereference(p, sp) \ + rcu_dereference_check(p, srcu_read_lock_held(sp)) + +/** * srcu_read_lock - register a new reader for an SRCU-protected structure. * @sp: srcu_struct in which to register the new reader. * |