Lines Matching refs:ri
1384 static struct return_instance *free_ret_instance(struct return_instance *ri) in free_ret_instance() argument
1386 struct return_instance *next = ri->next; in free_ret_instance()
1387 put_uprobe(ri->uprobe); in free_ret_instance()
1388 kfree(ri); in free_ret_instance()
1399 struct return_instance *ri; in uprobe_free_utask() local
1407 ri = utask->return_instances; in uprobe_free_utask()
1408 while (ri) in uprobe_free_utask()
1409 ri = free_ret_instance(ri); in uprobe_free_utask()
1529 struct return_instance *ri = utask->return_instances; in cleanup_return_instances() local
1532 while (ri && !arch_uretprobe_is_alive(ri, ctx, regs)) { in cleanup_return_instances()
1533 ri = free_ret_instance(ri); in cleanup_return_instances()
1536 utask->return_instances = ri; in cleanup_return_instances()
1541 struct return_instance *ri; in prepare_uretprobe() local
1560 ri = kmalloc(sizeof(struct return_instance), GFP_KERNEL); in prepare_uretprobe()
1561 if (!ri) in prepare_uretprobe()
1590 ri->uprobe = get_uprobe(uprobe); in prepare_uretprobe()
1591 ri->func = instruction_pointer(regs); in prepare_uretprobe()
1592 ri->stack = user_stack_pointer(regs); in prepare_uretprobe()
1593 ri->orig_ret_vaddr = orig_ret_vaddr; in prepare_uretprobe()
1594 ri->chained = chained; in prepare_uretprobe()
1597 ri->next = utask->return_instances; in prepare_uretprobe()
1598 utask->return_instances = ri; in prepare_uretprobe()
1602 kfree(ri); in prepare_uretprobe()
1775 handle_uretprobe_chain(struct return_instance *ri, struct pt_regs *regs) in handle_uretprobe_chain() argument
1777 struct uprobe *uprobe = ri->uprobe; in handle_uretprobe_chain()
1783 uc->ret_handler(uc, ri->func, regs); in handle_uretprobe_chain()
1788 static struct return_instance *find_next_ret_chain(struct return_instance *ri) in find_next_ret_chain() argument
1793 chained = ri->chained; in find_next_ret_chain()
1794 ri = ri->next; /* can't be NULL if chained */ in find_next_ret_chain()
1797 return ri; in find_next_ret_chain()
1803 struct return_instance *ri, *next; in handle_trampoline() local
1810 ri = utask->return_instances; in handle_trampoline()
1811 if (!ri) in handle_trampoline()
1821 next = find_next_ret_chain(ri); in handle_trampoline()
1824 instruction_pointer_set(regs, ri->orig_ret_vaddr); in handle_trampoline()
1827 handle_uretprobe_chain(ri, regs); in handle_trampoline()
1828 ri = free_ret_instance(ri); in handle_trampoline()
1830 } while (ri != next); in handle_trampoline()
1833 utask->return_instances = ri; in handle_trampoline()