hlist_for_each_entry(ri, node, head, hlist) { if (ri->stack_addr == sara && ri->rp) { if (ri->rp->handler) ri->rp->handler(ri, regs); }
hlist_for_each_entry_safe(ri, node, tmp, head, hlist) { if (ri->task != current)  continue;  if (ri->rp && ri->rp->handler) ri->rp->handler(ri, regs);  orig_ret_address = (unsigned long)ri->ret_addr; recycle_rp_inst(ri);  if (orig_ret_address != trampoline_address)  break;
int trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs){	struct task_struct *tsk;	struct kretprobe_instance *ri;	struct hlist_head *head;	struct hlist_node *node;	unsigned long *sara = (unsigned long *)regs->rsp - 1;	tsk = arch_get_kprobe_task(sara);	head = kretprobe_inst_table_head(tsk);	hlist_for_each_entry(ri, node, head, hlist) {		if (ri->stack_addr == sara && ri->rp) {			if (ri->rp->handler)				ri->rp->handler(ri, regs);		}	}	return 0;}