Commit 115f7a7c authored by Paul E. McKenney's avatar Paul E. McKenney

rcu: Apply for_each_rcu_flavor() to increment_cpu_stall_ticks()

The increment_cpu_stall_ticks() function listed each RCU flavor
explicitly, with an ifdef to handle preemptible RCU.  This commit
therefore applies for_each_rcu_flavor() to save a line of code.

Because this commit switches from a code-based enumeration of the
flavors of RCU to an rcu_state-list-based enumeration, it is no longer
possible to apply __get_cpu_var() to the per-CPU rcu_data structures.
We instead use __this_cpu_var() on the rcu_state structure's ->rda field
that references the corresponding rcu_data structures.
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent b065a853
...@@ -2200,11 +2200,10 @@ static void zero_cpu_stall_ticks(struct rcu_data *rdp) ...@@ -2200,11 +2200,10 @@ static void zero_cpu_stall_ticks(struct rcu_data *rdp)
/* Increment ->ticks_this_gp for all flavors of RCU. */ /* Increment ->ticks_this_gp for all flavors of RCU. */
static void increment_cpu_stall_ticks(void) static void increment_cpu_stall_ticks(void)
{ {
__get_cpu_var(rcu_sched_data).ticks_this_gp++; struct rcu_state *rsp;
__get_cpu_var(rcu_bh_data).ticks_this_gp++;
#ifdef CONFIG_TREE_PREEMPT_RCU for_each_rcu_flavor(rsp)
__get_cpu_var(rcu_preempt_data).ticks_this_gp++; __this_cpu_ptr(rsp->rda)->ticks_this_gp++;
#endif /* #ifdef CONFIG_TREE_PREEMPT_RCU */
} }
#else /* #ifdef CONFIG_RCU_CPU_STALL_INFO */ #else /* #ifdef CONFIG_RCU_CPU_STALL_INFO */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment