diff options
Diffstat (limited to 'kernel/rcu/tree_plugin.h')
-rw-r--r-- | kernel/rcu/tree_plugin.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index e33b4f3b8e0a..6977ff0dccb9 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h | |||
@@ -265,11 +265,11 @@ static void rcu_preempt_ctxt_queue(struct rcu_node *rnp, struct rcu_data *rdp, | |||
265 | */ | 265 | */ |
266 | static void rcu_preempt_qs(void) | 266 | static void rcu_preempt_qs(void) |
267 | { | 267 | { |
268 | if (!__this_cpu_read(rcu_data_p->passed_quiesce)) { | 268 | if (__this_cpu_read(rcu_data_p->cpu_no_qs)) { |
269 | trace_rcu_grace_period(TPS("rcu_preempt"), | 269 | trace_rcu_grace_period(TPS("rcu_preempt"), |
270 | __this_cpu_read(rcu_data_p->gpnum), | 270 | __this_cpu_read(rcu_data_p->gpnum), |
271 | TPS("cpuqs")); | 271 | TPS("cpuqs")); |
272 | __this_cpu_write(rcu_data_p->passed_quiesce, 1); | 272 | __this_cpu_write(rcu_data_p->cpu_no_qs, false); |
273 | barrier(); /* Coordinate with rcu_preempt_check_callbacks(). */ | 273 | barrier(); /* Coordinate with rcu_preempt_check_callbacks(). */ |
274 | current->rcu_read_unlock_special.b.need_qs = false; | 274 | current->rcu_read_unlock_special.b.need_qs = false; |
275 | } | 275 | } |
@@ -620,7 +620,7 @@ static void rcu_preempt_check_callbacks(void) | |||
620 | } | 620 | } |
621 | if (t->rcu_read_lock_nesting > 0 && | 621 | if (t->rcu_read_lock_nesting > 0 && |
622 | __this_cpu_read(rcu_data_p->core_needs_qs) && | 622 | __this_cpu_read(rcu_data_p->core_needs_qs) && |
623 | !__this_cpu_read(rcu_data_p->passed_quiesce)) | 623 | __this_cpu_read(rcu_data_p->cpu_no_qs)) |
624 | t->rcu_read_unlock_special.b.need_qs = true; | 624 | t->rcu_read_unlock_special.b.need_qs = true; |
625 | } | 625 | } |
626 | 626 | ||