diff options
author | 2015-10-08 15:36:54 -0700 | |
---|---|---|
committer | 2015-11-23 10:37:35 -0800 | |
commit | 6cf10081220ae21175a867d446b3167bcbcb937b (patch) | |
tree | d56610c200b32e90a2c24fc36a6c405910c95418 /kernel/rcu/tree_plugin.h | |
parent | rcu: Create transitive rnp->lock acquisition functions (diff) | |
download | linux-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.h | 2 |
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; |