diff options
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 44245ae4c1c2..a905d3ba8673 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
@@ -3299,6 +3299,7 @@ static void rcu_exp_gp_seq_start(struct rcu_state *rsp) | |||
3299 | static void rcu_exp_gp_seq_end(struct rcu_state *rsp) | 3299 | static void rcu_exp_gp_seq_end(struct rcu_state *rsp) |
3300 | { | 3300 | { |
3301 | rcu_seq_end(&rsp->expedited_sequence); | 3301 | rcu_seq_end(&rsp->expedited_sequence); |
3302 | smp_mb(); /* Ensure that consecutive grace periods serialize. */ | ||
3302 | } | 3303 | } |
3303 | static unsigned long rcu_exp_gp_seq_snap(struct rcu_state *rsp) | 3304 | static unsigned long rcu_exp_gp_seq_snap(struct rcu_state *rsp) |
3304 | { | 3305 | { |
@@ -3431,7 +3432,6 @@ void synchronize_sched_expedited(void) | |||
3431 | 3432 | ||
3432 | rcu_exp_gp_seq_end(rsp); | 3433 | rcu_exp_gp_seq_end(rsp); |
3433 | mutex_unlock(&rnp->exp_funnel_mutex); | 3434 | mutex_unlock(&rnp->exp_funnel_mutex); |
3434 | smp_mb(); /* ensure subsequent action seen after grace period. */ | ||
3435 | 3435 | ||
3436 | put_online_cpus(); | 3436 | put_online_cpus(); |
3437 | } | 3437 | } |