rcu: Create transitive rnp->lock acquisition functions
authorPeter Zijlstra <peterz@infradead.org>
Thu, 8 Oct 2015 10:24:23 +0000 (12:24 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 23 Nov 2015 18:37:35 +0000 (10:37 -0800)
commit2a67e741bbbc022e0fadf8c6dbc3a76019ecd0cf
tree2f06a10ebf9f27272f6de99b0da5c19c5bdde6f6
parent1ec218373b8ebda821aec00bb156a9c94fad9cd4
rcu: Create transitive rnp->lock acquisition functions

Providing RCU's memory-ordering guarantees requires that the rcu_node
tree's locking provide transitive memory ordering, which the Linux kernel's
spinlocks currently do not provide unless smp_mb__after_unlock_lock()
is used.  Having a separate smp_mb__after_unlock_lock() after each and
every lock acquisition is error-prone, hard to read, and a bit annoying,
so this commit provides wrapper functions that pull in the
smp_mb__after_unlock_lock() invocations.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_plugin.h