Lines Matching refs:head
85 static inline bool rcu_reclaim_tiny(struct rcu_head *head)
88 unsigned long offset = (unsigned long)head->func;
92 trace_rcu_invoke_kvfree_callback("", head, offset);
93 kvfree((void *)head - offset);
98 trace_rcu_invoke_callback("", head);
99 f = head->func;
100 debug_rcu_head_callback(head);
101 WRITE_ONCE(head->func, (rcu_callback_t)0L);
102 f(head);
171 void call_rcu(struct rcu_head *head, rcu_callback_t func)
176 if (debug_rcu_head_queue(head)) {
178 pr_err("%s(): Double-freed CB %p->%pS()!!! ", __func__, head, head->func);
179 mem_dump_obj(head);
182 if (!__is_kvfree_rcu_offset((unsigned long)head->func))
183 WRITE_ONCE(head->func, tiny_rcu_leak_callback);
187 head->func = func;
188 head->next = NULL;
191 *rcu_ctrlblk.curtail = head;
192 rcu_ctrlblk.curtail = &head->next;
250 void kvfree_call_rcu(struct rcu_head *head, void *ptr)
252 if (head)
255 __kvfree_call_rcu(head, ptr);