diff options
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r-- | kernel/rcutree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index f280e542e3e..f7bcd9e6c05 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
@@ -305,7 +305,9 @@ cpu_has_callbacks_ready_to_invoke(struct rcu_data *rdp) | |||
305 | static int | 305 | static int |
306 | cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp) | 306 | cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp) |
307 | { | 307 | { |
308 | return *rdp->nxttail[RCU_DONE_TAIL] && !rcu_gp_in_progress(rsp); | 308 | return *rdp->nxttail[RCU_DONE_TAIL + |
309 | ACCESS_ONCE(rsp->completed) != rdp->completed] && | ||
310 | !rcu_gp_in_progress(rsp); | ||
309 | } | 311 | } |
310 | 312 | ||
311 | /* | 313 | /* |