diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-07-12 06:52:31 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-08-17 16:26:23 +0200 |
commit | 2dee9404fa8c4384453a5f3a15ad74ab9480f2d6 (patch) | |
tree | ef942d70822fab59415526d87b08fc68ef90660c /kernel/rcu/tree.c | |
parent | rcu/tracing: Set disable_rcu_irq_enter on rcu_eqs_exit() (diff) | |
download | linux-2dee9404fa8c4384453a5f3a15ad74ab9480f2d6.tar.xz linux-2dee9404fa8c4384453a5f3a15ad74ab9480f2d6.zip |
rcu: Add assertions verifying blocked-tasks list
This commit adds assertions verifying the consistency of the rcu_node
structure's ->blkd_tasks list and its ->gp_tasks, ->exp_tasks, and
->boost_tasks pointers. In particular, the ->blkd_tasks lists must be
empty except for leaf rcu_node structures.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2b37f1a8e235..ac2617d857a3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2410,6 +2410,8 @@ rcu_report_qs_rnp(unsigned long mask, struct rcu_state *rsp, return; } WARN_ON_ONCE(oldmask); /* Any child must be all zeroed! */ + WARN_ON_ONCE(rnp->level != rcu_num_lvls - 1 && + rcu_preempt_blocked_readers_cgp(rnp)); rnp->qsmask &= ~mask; trace_rcu_quiescent_state_report(rsp->name, rnp->gpnum, mask, rnp->qsmask, rnp->level, |