Lines Matching refs:ri
1705 static struct return_instance *free_ret_instance(struct return_instance *ri) in free_ret_instance() argument
1707 struct return_instance *next = ri->next; in free_ret_instance()
1708 put_uprobe(ri->uprobe); in free_ret_instance()
1709 kfree(ri); in free_ret_instance()
1720 struct return_instance *ri; in uprobe_free_utask() local
1728 ri = utask->return_instances; in uprobe_free_utask()
1729 while (ri) in uprobe_free_utask()
1730 ri = free_ret_instance(ri); in uprobe_free_utask()
1851 struct return_instance *ri = utask->return_instances; in cleanup_return_instances() local
1854 while (ri && !arch_uretprobe_is_alive(ri, ctx, regs)) { in cleanup_return_instances()
1855 ri = free_ret_instance(ri); in cleanup_return_instances()
1858 utask->return_instances = ri; in cleanup_return_instances()
1863 struct return_instance *ri; in prepare_uretprobe() local
1882 ri = kmalloc(sizeof(struct return_instance), GFP_KERNEL); in prepare_uretprobe()
1883 if (!ri) in prepare_uretprobe()
1912 ri->uprobe = get_uprobe(uprobe); in prepare_uretprobe()
1913 ri->func = instruction_pointer(regs); in prepare_uretprobe()
1914 ri->stack = user_stack_pointer(regs); in prepare_uretprobe()
1915 ri->orig_ret_vaddr = orig_ret_vaddr; in prepare_uretprobe()
1916 ri->chained = chained; in prepare_uretprobe()
1919 ri->next = utask->return_instances; in prepare_uretprobe()
1920 utask->return_instances = ri; in prepare_uretprobe()
1924 kfree(ri); in prepare_uretprobe()
2106 handle_uretprobe_chain(struct return_instance *ri, struct pt_regs *regs) in handle_uretprobe_chain() argument
2108 struct uprobe *uprobe = ri->uprobe; in handle_uretprobe_chain()
2114 uc->ret_handler(uc, ri->func, regs); in handle_uretprobe_chain()
2119 static struct return_instance *find_next_ret_chain(struct return_instance *ri) in find_next_ret_chain() argument
2124 chained = ri->chained; in find_next_ret_chain()
2125 ri = ri->next; /* can't be NULL if chained */ in find_next_ret_chain()
2128 return ri; in find_next_ret_chain()
2134 struct return_instance *ri, *next; in handle_trampoline() local
2141 ri = utask->return_instances; in handle_trampoline()
2142 if (!ri) in handle_trampoline()
2152 next = find_next_ret_chain(ri); in handle_trampoline()
2155 instruction_pointer_set(regs, ri->orig_ret_vaddr); in handle_trampoline()
2158 handle_uretprobe_chain(ri, regs); in handle_trampoline()
2159 ri = free_ret_instance(ri); in handle_trampoline()
2161 } while (ri != next); in handle_trampoline()
2164 utask->return_instances = ri; in handle_trampoline()