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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index e354e475e645..657056c3e0cd 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3578,8 +3578,14 @@ static void rcu_barrier_func(void *type)
3578 struct rcu_data *rdp = raw_cpu_ptr(rsp->rda); 3578 struct rcu_data *rdp = raw_cpu_ptr(rsp->rda);
3579 3579
3580 _rcu_barrier_trace(rsp, "IRQ", -1, rsp->barrier_sequence); 3580 _rcu_barrier_trace(rsp, "IRQ", -1, rsp->barrier_sequence);
3581 atomic_inc(&rsp->barrier_cpu_count); 3581 rdp->barrier_head.func = rcu_barrier_callback;
3582 rsp->call(&rdp->barrier_head, rcu_barrier_callback); 3582 debug_rcu_head_queue(&rdp->barrier_head);
3583 if (rcu_segcblist_entrain(&rdp->cblist, &rdp->barrier_head, 0)) {
3584 atomic_inc(&rsp->barrier_cpu_count);
3585 } else {
3586 debug_rcu_head_unqueue(&rdp->barrier_head);
3587 _rcu_barrier_trace(rsp, "IRQNQ", -1, rsp->barrier_sequence);
3588 }
3583} 3589}
3584 3590
3585/* 3591/*