diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-01-19 21:43:40 -0800 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-02-26 12:01:29 -0800 |
commit | 59f792d1ef214592ae9b86238fa8fd00f5929b76 (patch) | |
tree | 21e4b7c4a39db41ad64a13b021145a9da9915292 /kernel/rcu | |
parent | 143da9c2fc030a5774674f2ebc2f934fab3dcd9a (diff) | |
download | linux-59f792d1ef214592ae9b86238fa8fd00f5929b76.tar.gz linux-59f792d1ef214592ae9b86238fa8fd00f5929b76.tar.bz2 linux-59f792d1ef214592ae9b86238fa8fd00f5929b76.zip |
rcu: Refine diagnostics for lacking kthread for no-CBs callbacks
Some diagnostics under CONFIG_PROVE_RCU in rcu_nocb_cpu_needs_barrier()
assume that there can be no early-boot callbacks. This commit therefore
qualifies the diagnostic with rcu_scheduler_fully_active to permit
early boot callbacks to avoid this splat.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r-- | kernel/rcu/tree_plugin.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 0a571e9a0f1d..75d5f096bcb0 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -1945,7 +1945,8 @@ static bool rcu_nocb_cpu_needs_barrier(struct rcu_state *rsp, int cpu) rhp = ACCESS_ONCE(rdp->nocb_follower_head); /* Having no rcuo kthread but CBs after scheduler starts is bad! */ - if (!ACCESS_ONCE(rdp->nocb_kthread) && rhp) { + if (!ACCESS_ONCE(rdp->nocb_kthread) && rhp && + rcu_scheduler_fully_active) { /* RCU callback enqueued before CPU first came online??? */ pr_err("RCU: Never-onlined no-CBs CPU %d has CB %p\n", cpu, rhp->func); |