aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree_plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcu/tree_plugin.h')
-rw-r--r--kernel/rcu/tree_plugin.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 81d3cd821891..6ddb3c05e88f 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -285,7 +285,7 @@ static void rcu_qs(void)
285 TPS("cpuqs")); 285 TPS("cpuqs"));
286 __this_cpu_write(rcu_data.cpu_no_qs.b.norm, false); 286 __this_cpu_write(rcu_data.cpu_no_qs.b.norm, false);
287 barrier(); /* Coordinate with rcu_flavor_sched_clock_irq(). */ 287 barrier(); /* Coordinate with rcu_flavor_sched_clock_irq(). */
288 current->rcu_read_unlock_special.b.need_qs = false; 288 WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, false);
289 } 289 }
290} 290}
291 291
@@ -817,7 +817,7 @@ void exit_rcu(void)
817 if (unlikely(!list_empty(&current->rcu_node_entry))) { 817 if (unlikely(!list_empty(&current->rcu_node_entry))) {
818 t->rcu_read_lock_nesting = 1; 818 t->rcu_read_lock_nesting = 1;
819 barrier(); 819 barrier();
820 t->rcu_read_unlock_special.b.blocked = true; 820 WRITE_ONCE(t->rcu_read_unlock_special.b.blocked, true);
821 } else if (unlikely(t->rcu_read_lock_nesting)) { 821 } else if (unlikely(t->rcu_read_lock_nesting)) {
822 t->rcu_read_lock_nesting = 1; 822 t->rcu_read_lock_nesting = 1;
823 } else { 823 } else {