Lines Matching refs:rhp
1244 static void srcu_leak_callback(struct rcu_head *rhp) in srcu_leak_callback() argument
1252 struct rcu_head *rhp, bool do_norm) in srcu_gp_start_if_needed() argument
1276 if (rhp) in srcu_gp_start_if_needed()
1277 rcu_segcblist_enqueue(&sdp->srcu_cblist, rhp); in srcu_gp_start_if_needed()
1315 if (rhp) { in srcu_gp_start_if_needed()
1379 static void __call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in __call_srcu() argument
1382 if (debug_rcu_head_queue(rhp)) { in __call_srcu()
1384 WRITE_ONCE(rhp->func, srcu_leak_callback); in __call_srcu()
1388 rhp->func = func; in __call_srcu()
1389 (void)srcu_gp_start_if_needed(ssp, rhp, do_norm); in __call_srcu()
1413 void call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in call_srcu() argument
1416 __call_srcu(ssp, rhp, func, true); in call_srcu()
1604 static void srcu_barrier_cb(struct rcu_head *rhp) in srcu_barrier_cb() argument
1609 rhp->next = rhp; // Mark the callback as having been invoked. in srcu_barrier_cb()
1610 sdp = container_of(rhp, struct srcu_data, srcu_barrier_head); in srcu_barrier_cb()
1772 struct rcu_head *rhp; in srcu_invoke_callbacks() local
1800 rhp = rcu_cblist_dequeue(&ready_cbs); in srcu_invoke_callbacks()
1801 for (; rhp != NULL; rhp = rcu_cblist_dequeue(&ready_cbs)) { in srcu_invoke_callbacks()
1802 debug_rcu_head_unqueue(rhp); in srcu_invoke_callbacks()
1803 debug_rcu_head_callback(rhp); in srcu_invoke_callbacks()
1805 rhp->func(rhp); in srcu_invoke_callbacks()