aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c2
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)
3299static void rcu_exp_gp_seq_end(struct rcu_state *rsp) 3299static 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}
3303static unsigned long rcu_exp_gp_seq_snap(struct rcu_state *rsp) 3304static 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}