aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoqun Feng <boqun.feng@gmail.com>2018-03-07 03:49:39 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-05-15 13:26:01 -0400
commit7be8c56f8f8a58af92f8791c5a09d48e342d7101 (patch)
tree25cd6760e384e2443a51b51c04c64fb55575a0ee
parent25f3d7effab632eb10d145f1a5aebf6515a04b98 (diff)
rcu: exp: Fix "must hold exp_mutex" comments for QS reporting functions
Since commit d9a3da0699b2 ("rcu: Add expedited grace-period support for preemptible RCU"), there are comments for some funtions in rcu_report_exp_rnp()'s call-chain saying that exp_mutex or its predecessors needs to be held. However, exp_mutex and its predecessors were used only to synchronize between GPs, and it is clear that all variables visited by those functions are under the protection of rcu_node's ->lock. Moreover, those functions are currently called without held exp_mutex, and seems that doesn't introduce any trouble. So this patch fixes this problem by updating the comments to match the current code. Signed-off-by: Boqun Feng <boqun.feng@gmail.com> Fixes: d9a3da0699b2 ("rcu: Add expedited grace-period support for preemptible RCU") Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Nicholas Piggin <npiggin@gmail.com>
-rw-r--r--kernel/rcu/tree_exp.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index 73e1d3dca5b1..d7622cb85aa7 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -154,7 +154,7 @@ static void __maybe_unused sync_exp_reset_tree(struct rcu_state *rsp)
154 * for the current expedited grace period. Works only for preemptible 154 * for the current expedited grace period. Works only for preemptible
155 * RCU -- other RCU implementation use other means. 155 * RCU -- other RCU implementation use other means.
156 * 156 *
157 * Caller must hold the rcu_state's exp_mutex. 157 * Caller must hold the specificed rcu_node structure's ->lock
158 */ 158 */
159static bool sync_rcu_preempt_exp_done(struct rcu_node *rnp) 159static bool sync_rcu_preempt_exp_done(struct rcu_node *rnp)
160{ 160{
@@ -170,8 +170,7 @@ static bool sync_rcu_preempt_exp_done(struct rcu_node *rnp)
170 * recursively up the tree. (Calm down, calm down, we do the recursion 170 * recursively up the tree. (Calm down, calm down, we do the recursion
171 * iteratively!) 171 * iteratively!)
172 * 172 *
173 * Caller must hold the rcu_state's exp_mutex and the specified rcu_node 173 * Caller must hold the specified rcu_node structure's ->lock.
174 * structure's ->lock.
175 */ 174 */
176static void __rcu_report_exp_rnp(struct rcu_state *rsp, struct rcu_node *rnp, 175static void __rcu_report_exp_rnp(struct rcu_state *rsp, struct rcu_node *rnp,
177 bool wake, unsigned long flags) 176 bool wake, unsigned long flags)
@@ -207,8 +206,6 @@ static void __rcu_report_exp_rnp(struct rcu_state *rsp, struct rcu_node *rnp,
207/* 206/*
208 * Report expedited quiescent state for specified node. This is a 207 * Report expedited quiescent state for specified node. This is a
209 * lock-acquisition wrapper function for __rcu_report_exp_rnp(). 208 * lock-acquisition wrapper function for __rcu_report_exp_rnp().
210 *
211 * Caller must hold the rcu_state's exp_mutex.
212 */ 209 */
213static void __maybe_unused rcu_report_exp_rnp(struct rcu_state *rsp, 210static void __maybe_unused rcu_report_exp_rnp(struct rcu_state *rsp,
214 struct rcu_node *rnp, bool wake) 211 struct rcu_node *rnp, bool wake)
@@ -221,8 +218,7 @@ static void __maybe_unused rcu_report_exp_rnp(struct rcu_state *rsp,
221 218
222/* 219/*
223 * Report expedited quiescent state for multiple CPUs, all covered by the 220 * Report expedited quiescent state for multiple CPUs, all covered by the
224 * specified leaf rcu_node structure. Caller must hold the rcu_state's 221 * specified leaf rcu_node structure.
225 * exp_mutex.
226 */ 222 */
227static void rcu_report_exp_cpu_mult(struct rcu_state *rsp, struct rcu_node *rnp, 223static void rcu_report_exp_cpu_mult(struct rcu_state *rsp, struct rcu_node *rnp,
228 unsigned long mask, bool wake) 224 unsigned long mask, bool wake)