diff options
Diffstat (limited to 'kernel/rcu/tree_plugin.h')
-rw-r--r-- | kernel/rcu/tree_plugin.h | 4 |
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(¤t->rcu_node_entry))) { | 817 | if (unlikely(!list_empty(¤t->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 { |