diff options
| -rw-r--r-- | kernel/rcu/tree.c | 1 | ||||
| -rw-r--r-- | kernel/rcu/tree_plugin.h | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 85417584ffd0..a4277c1087d9 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
| @@ -2316,6 +2316,7 @@ static void rcu_report_unblock_qs_rnp(struct rcu_state *rsp, | |||
| 2316 | return; /* Still need more quiescent states! */ | 2316 | return; /* Still need more quiescent states! */ |
| 2317 | } | 2317 | } |
| 2318 | 2318 | ||
| 2319 | rnp->completedqs = rnp->gp_seq; | ||
| 2319 | rnp_p = rnp->parent; | 2320 | rnp_p = rnp->parent; |
| 2320 | if (rnp_p == NULL) { | 2321 | if (rnp_p == NULL) { |
| 2321 | /* | 2322 | /* |
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 3a6e04103de1..677b0c9f548d 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h | |||
| @@ -856,8 +856,14 @@ static void dump_blkd_tasks(struct rcu_node *rnp, int ncheck) | |||
| 856 | struct list_head *lhp; | 856 | struct list_head *lhp; |
| 857 | 857 | ||
| 858 | raw_lockdep_assert_held_rcu_node(rnp); | 858 | raw_lockdep_assert_held_rcu_node(rnp); |
| 859 | pr_info("%s: grp: %d-%d level: %d ->qamask %#lx ->gp_tasks %p ->boost_tasks %p ->exp_tasks %p &->blkd_tasks: %p offset: %u\n", __func__, rnp->grplo, rnp->grphi, rnp->level, rnp->qsmask, rnp->gp_tasks, rnp->boost_tasks, rnp->exp_tasks, &rnp->blkd_tasks, (unsigned int)offsetof(typeof(*rnp), blkd_tasks)); | 859 | pr_info("%s: grp: %d-%d level: %d ->gp_seq %#lx ->completedqs %#lx\n", |
| 860 | pr_cont("\t->blkd_tasks"); | 860 | __func__, rnp->grplo, rnp->grphi, rnp->level, |
| 861 | rnp->gp_seq, rnp->completedqs); | ||
| 862 | pr_info("%s: ->qsmask %#lx ->qsmaskinit %#lx ->qsmaskinitnext %#lx\n", | ||
| 863 | __func__, rnp->qsmask, rnp->qsmaskinit, rnp->qsmaskinitnext); | ||
| 864 | pr_info("%s: ->gp_tasks %p ->boost_tasks %p ->exp_tasks %p\n", | ||
| 865 | __func__, rnp->gp_tasks, rnp->boost_tasks, rnp->exp_tasks); | ||
| 866 | pr_info("%s: ->blkd_tasks", __func__); | ||
| 861 | i = 0; | 867 | i = 0; |
| 862 | list_for_each(lhp, &rnp->blkd_tasks) { | 868 | list_for_each(lhp, &rnp->blkd_tasks) { |
| 863 | pr_cont(" %p", lhp); | 869 | pr_cont(" %p", lhp); |
