aboutsummaryrefslogtreecommitdiff
path: root/kernel/rcu/tree_plugin.h
diff options
context:
space:
mode:
authorGravatar Paul E. McKenney <paulmck@linux.vnet.ibm.com> 2015-10-08 15:36:54 -0700
committerGravatar Paul E. McKenney <paulmck@linux.vnet.ibm.com> 2015-11-23 10:37:35 -0800
commit6cf10081220ae21175a867d446b3167bcbcb937b (patch)
treed56610c200b32e90a2c24fc36a6c405910c95418 /kernel/rcu/tree_plugin.h
parentrcu: Create transitive rnp->lock acquisition functions (diff)
downloadlinux-6cf10081220ae21175a867d446b3167bcbcb937b.tar.gz
linux-6cf10081220ae21175a867d446b3167bcbcb937b.tar.bz2
linux-6cf10081220ae21175a867d446b3167bcbcb937b.zip
rcu: Add transitivity to remaining rcu_node ->lock acquisitions
The rule is that all acquisitions of the rcu_node structure's ->lock must provide transitivity: The lock is not acquired that frequently, and sorting out exactly which required it and which did not would be a maintenance nightmare. This commit therefore supplies the needed transitivity to the remaining ->lock acquisitions. Reported-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree_plugin.h')
-rw-r--r--kernel/rcu/tree_plugin.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index fa0e3b96a9ed..57ba873d2f18 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -525,7 +525,7 @@ static void rcu_print_detail_task_stall_rnp(struct rcu_node *rnp)
unsigned long flags;
struct task_struct *t;
- raw_spin_lock_irqsave(&rnp->lock, flags);
+ raw_spin_lock_irqsave_rcu_node(rnp, flags);
if (!rcu_preempt_blocked_readers_cgp(rnp)) {
raw_spin_unlock_irqrestore(&rnp->lock, flags);
return;