rcu: Clean up flavor-related definitions and comments in rcu.h
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
Родитель
8c1cf2da6f
Коммит
7f87c036fe
|
@ -176,8 +176,9 @@ static inline unsigned long rcu_seq_diff(unsigned long new, unsigned long old)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* debug_rcu_head_queue()/debug_rcu_head_unqueue() are used internally
|
* debug_rcu_head_queue()/debug_rcu_head_unqueue() are used internally
|
||||||
* by call_rcu() and rcu callback execution, and are therefore not part of the
|
* by call_rcu() and rcu callback execution, and are therefore not part
|
||||||
* RCU API. Leaving in rcupdate.h because they are used by all RCU flavors.
|
* of the RCU API. These are in rcupdate.h because they are used by all
|
||||||
|
* RCU implementations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
|
#ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
|
||||||
|
@ -328,7 +329,7 @@ static inline void rcu_init_levelspread(int *levelspread, const int *levelcnt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns first leaf rcu_node of the specified RCU flavor. */
|
/* Returns a pointer to the first leaf rcu_node structure. */
|
||||||
#define rcu_first_leaf_node() (rcu_state.level[rcu_num_lvls - 1])
|
#define rcu_first_leaf_node() (rcu_state.level[rcu_num_lvls - 1])
|
||||||
|
|
||||||
/* Is this rcu_node a leaf? */
|
/* Is this rcu_node a leaf? */
|
||||||
|
@ -339,7 +340,8 @@ static inline void rcu_init_levelspread(int *levelspread, const int *levelcnt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do a full breadth-first scan of the {s,}rcu_node structures for the
|
* Do a full breadth-first scan of the {s,}rcu_node structures for the
|
||||||
* specified rcu_state structure.
|
* specified state structure (for SRCU) or the only rcu_state structure
|
||||||
|
* (for RCU).
|
||||||
*/
|
*/
|
||||||
#define srcu_for_each_node_breadth_first(sp, rnp) \
|
#define srcu_for_each_node_breadth_first(sp, rnp) \
|
||||||
for ((rnp) = &(sp)->node[0]; \
|
for ((rnp) = &(sp)->node[0]; \
|
||||||
|
@ -348,10 +350,10 @@ static inline void rcu_init_levelspread(int *levelspread, const int *levelcnt)
|
||||||
srcu_for_each_node_breadth_first(&rcu_state, rnp)
|
srcu_for_each_node_breadth_first(&rcu_state, rnp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Scan the leaves of the rcu_node hierarchy for the specified rcu_state
|
* Scan the leaves of the rcu_node hierarchy for the rcu_state structure.
|
||||||
* structure. Note that if there is a singleton rcu_node tree with but
|
* Note that if there is a singleton rcu_node tree with but one rcu_node
|
||||||
* one rcu_node structure, this loop -will- visit the rcu_node structure.
|
* structure, this loop -will- visit the rcu_node structure. It is still
|
||||||
* It is still a leaf node, even if it is also the root node.
|
* a leaf node, even if it is also the root node.
|
||||||
*/
|
*/
|
||||||
#define rcu_for_each_leaf_node(rnp) \
|
#define rcu_for_each_leaf_node(rnp) \
|
||||||
for ((rnp) = rcu_first_leaf_node(); \
|
for ((rnp) = rcu_first_leaf_node(); \
|
||||||
|
|
Загрузка…
Ссылка в новой задаче