Lines Matching refs:rhp
801 static void srcu_leak_callback(struct rcu_head *rhp) in srcu_leak_callback() argument
809 struct rcu_head *rhp, bool do_norm) in srcu_gp_start_if_needed() argument
822 if (rhp) in srcu_gp_start_if_needed()
823 rcu_segcblist_enqueue(&sdp->srcu_cblist, rhp); in srcu_gp_start_if_needed()
873 static void __call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in __call_srcu() argument
876 if (debug_rcu_head_queue(rhp)) { in __call_srcu()
878 WRITE_ONCE(rhp->func, srcu_leak_callback); in __call_srcu()
882 rhp->func = func; in __call_srcu()
883 (void)srcu_gp_start_if_needed(ssp, rhp, do_norm); in __call_srcu()
903 void call_srcu(struct srcu_struct *ssp, struct rcu_head *rhp, in call_srcu() argument
906 __call_srcu(ssp, rhp, func, true); in call_srcu()
1089 static void srcu_barrier_cb(struct rcu_head *rhp) in srcu_barrier_cb() argument
1094 sdp = container_of(rhp, struct srcu_data, srcu_barrier_head); in srcu_barrier_cb()
1246 struct rcu_head *rhp; in srcu_invoke_callbacks() local
1268 rhp = rcu_cblist_dequeue(&ready_cbs); in srcu_invoke_callbacks()
1269 for (; rhp != NULL; rhp = rcu_cblist_dequeue(&ready_cbs)) { in srcu_invoke_callbacks()
1270 debug_rcu_head_unqueue(rhp); in srcu_invoke_callbacks()
1272 rhp->func(rhp); in srcu_invoke_callbacks()