Lines Matching refs:node
24 struct llist_node *node; in rethook_flush_task() local
26 node = __llist_del_all(&tk->rethooks); in rethook_flush_task()
27 while (node) { in rethook_flush_task()
28 rhn = container_of(node, struct rethook_node, llist); in rethook_flush_task()
29 node = node->next; in rethook_flush_task()
40 struct freelist_node *node; in rethook_free_rcu() local
43 node = rh->pool.head; in rethook_free_rcu()
44 while (node) { in rethook_free_rcu()
45 rhn = container_of(node, struct rethook_node, freelist); in rethook_free_rcu()
46 node = node->next; in rethook_free_rcu()
126 void rethook_add_node(struct rethook *rh, struct rethook_node *node) in rethook_add_node() argument
128 node->rethook = rh; in rethook_add_node()
129 freelist_add(&node->freelist, &rh->pool); in rethook_add_node()
135 struct rethook_node *node = container_of(head, struct rethook_node, rcu); in free_rethook_node_rcu() local
137 if (refcount_dec_and_test(&node->rethook->ref)) in free_rethook_node_rcu()
138 kfree(node->rethook); in free_rethook_node_rcu()
139 kfree(node); in free_rethook_node_rcu()
149 void rethook_recycle(struct rethook_node *node) in rethook_recycle() argument
153 handler = rethook_get_handler(node->rethook); in rethook_recycle()
155 freelist_add(&node->freelist, &node->rethook->pool); in rethook_recycle()
157 call_rcu(&node->rcu, free_rethook_node_rcu); in rethook_recycle()
207 void rethook_hook(struct rethook_node *node, struct pt_regs *regs, bool mcount) in rethook_hook() argument
209 arch_rethook_prepare(node, regs, mcount); in rethook_hook()
210 __llist_add(&node->llist, ¤t->rethooks); in rethook_hook()
219 struct llist_node *node = *cur; in __rethook_find_ret_addr() local
221 if (!node) in __rethook_find_ret_addr()
222 node = tsk->rethooks.first; in __rethook_find_ret_addr()
224 node = node->next; in __rethook_find_ret_addr()
226 while (node) { in __rethook_find_ret_addr()
227 rh = container_of(node, struct rethook_node, llist); in __rethook_find_ret_addr()
229 *cur = node; in __rethook_find_ret_addr()
232 node = node->next; in __rethook_find_ret_addr()
292 struct llist_node *first, *node = NULL; in rethook_trampoline_handler() local
297 correct_ret_addr = __rethook_find_ret_addr(current, &node); in rethook_trampoline_handler()
325 if (first == node) in rethook_trampoline_handler()
335 current->rethooks.first = node->next; in rethook_trampoline_handler()
336 node->next = NULL; in rethook_trampoline_handler()