diff options
-rw-r--r-- | kernel/rcutree.c | 7 |
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); |