aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rcutree.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 0051dbf6958e..9970116163ba 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -838,8 +838,11 @@ rcu_start_gp(struct rcu_state *rsp, unsigned long flags)
838 struct rcu_data *rdp = this_cpu_ptr(rsp->rda); 838 struct rcu_data *rdp = this_cpu_ptr(rsp->rda);
839 struct rcu_node *rnp = rcu_get_root(rsp); 839 struct rcu_node *rnp = rcu_get_root(rsp);
840 840
841 if (!cpu_needs_another_gp(rsp, rdp) || rsp->fqs_active) { 841 if (!rcu_scheduler_fully_active ||
842 if (cpu_needs_another_gp(rsp, rdp)) 842 !cpu_needs_another_gp(rsp, rdp) ||
843 rsp->fqs_active) {
844 if (rcu_scheduler_fully_active &&
845 cpu_needs_another_gp(rsp, rdp))
843 rsp->fqs_need_gp = 1; 846 rsp->fqs_need_gp = 1;
844 if (rnp->completed == rsp->completed) { 847 if (rnp->completed == rsp->completed) {
845 raw_spin_unlock_irqrestore(&rnp->lock, flags); 848 raw_spin_unlock_irqrestore(&rnp->lock, flags);