diff --git a/[refs] b/[refs] index f05ee039acb5..dacca15ad828 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e27fc9641e8ddc8146f8e01f06e5eba2469698de +refs/heads/master: 20377f32dcb77941d450728da18cce5b1a7faec5 diff --git a/trunk/kernel/rcutree.c b/trunk/kernel/rcutree.c index 120820ffc657..916f42b39f1e 100644 --- a/trunk/kernel/rcutree.c +++ b/trunk/kernel/rcutree.c @@ -678,6 +678,14 @@ __rcu_process_gp_end(struct rcu_state *rsp, struct rcu_node *rnp, struct rcu_dat /* Remember that we saw this grace-period completion. */ rdp->completed = rnp->completed; + + /* + * If another CPU handled our extended quiescent states and + * we have no more grace period to complete yet, then stop + * chasing quiescent states. + */ + if (rdp->completed == rnp->gpnum) + rdp->qs_pending = 0; } }