From 3fa5a8ca38a0f0dd533a7eed4f5171d58eadd09b Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Fri, 10 Dec 2010 22:11:10 +0100 Subject: [PATCH] --- yaml --- r: 223805 b: refs/heads/master c: 20377f32dcb77941d450728da18cce5b1a7faec5 h: refs/heads/master i: 223803: ff5a9e3a30811854936d2956ce99cd799b5be86c v: v3 --- [refs] | 2 +- trunk/kernel/rcutree.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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; } }