From 34b04a09550028e4dbd3424b291802dad3d06749 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Sun, 7 Aug 2011 20:26:31 -0700 Subject: [PATCH] --- yaml --- r: 268977 b: refs/heads/master c: 037067a1b6f9a70f862f3ed9d59fe28b7cd55ac4 h: refs/heads/master i: 268975: 30180054c61b5164dd5b523c8c0c2a3acebb4ece v: v3 --- [refs] | 2 +- trunk/kernel/rcutree.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 1642095d6d88..e0f7835b2ace 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 82e78d80fc392ac7e98326bc8beeb8a679913ffd +refs/heads/master: 037067a1b6f9a70f862f3ed9d59fe28b7cd55ac4 diff --git a/trunk/kernel/rcutree.c b/trunk/kernel/rcutree.c index 0051dbf6958e..9970116163ba 100644 --- a/trunk/kernel/rcutree.c +++ b/trunk/kernel/rcutree.c @@ -838,8 +838,11 @@ rcu_start_gp(struct rcu_state *rsp, unsigned long flags) struct rcu_data *rdp = this_cpu_ptr(rsp->rda); struct rcu_node *rnp = rcu_get_root(rsp); - if (!cpu_needs_another_gp(rsp, rdp) || rsp->fqs_active) { - if (cpu_needs_another_gp(rsp, rdp)) + if (!rcu_scheduler_fully_active || + !cpu_needs_another_gp(rsp, rdp) || + rsp->fqs_active) { + if (rcu_scheduler_fully_active && + cpu_needs_another_gp(rsp, rdp)) rsp->fqs_need_gp = 1; if (rnp->completed == rsp->completed) { raw_spin_unlock_irqrestore(&rnp->lock, flags);