rcu: Fix day-one dyntick-idle stall-warning bug
[firefly-linux-kernel-4.4.55.git] / kernel / rcutree.c
index ba06207b1dd3bf9f9d42bc8800998b80b909c02d..fe7a9b090f96a8fdb40b70a8402d06e4c41dadb5 100644 (file)
@@ -283,7 +283,9 @@ cpu_has_callbacks_ready_to_invoke(struct rcu_data *rdp)
 static int
 cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp)
 {
-       return *rdp->nxttail[RCU_DONE_TAIL] && !rcu_gp_in_progress(rsp);
+       return *rdp->nxttail[RCU_DONE_TAIL +
+                            ACCESS_ONCE(rsp->completed) != rdp->completed] &&
+              !rcu_gp_in_progress(rsp);
 }
 
 /*