diff options
| author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-07-12 00:52:31 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-08-17 10:26:23 -0400 |
| commit | 2dee9404fa8c4384453a5f3a15ad74ab9480f2d6 (patch) | |
| tree | ef942d70822fab59415526d87b08fc68ef90660c /kernel/rcu/tree.c | |
| parent | 35fe723bda12c25f4ac20a4fb91e345cacf568f7 (diff) | |
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, | |||
| 2410 | return; | 2410 | return; |
| 2411 | } | 2411 | } |
| 2412 | WARN_ON_ONCE(oldmask); /* Any child must be all zeroed! */ | 2412 | WARN_ON_ONCE(oldmask); /* Any child must be all zeroed! */ |
| 2413 | WARN_ON_ONCE(rnp->level != rcu_num_lvls - 1 && | ||
| 2414 | rcu_preempt_blocked_readers_cgp(rnp)); | ||
| 2413 | rnp->qsmask &= ~mask; | 2415 | rnp->qsmask &= ~mask; |
| 2414 | trace_rcu_quiescent_state_report(rsp->name, rnp->gpnum, | 2416 | trace_rcu_quiescent_state_report(rsp->name, rnp->gpnum, |
| 2415 | mask, rnp->qsmask, rnp->level, | 2417 | mask, rnp->qsmask, rnp->level, |
