Lines Matching refs:utask

1689 	if (!tsk->mm || !tsk->mm->uprobes_state.xol_area || !tsk->utask)  in xol_free_insn_slot()
1692 slot_addr = tsk->utask->xol_vaddr; in xol_free_insn_slot()
1713 tsk->utask->xol_vaddr = 0; in xol_free_insn_slot()
1745 struct uprobe_task *utask = current->utask; in uprobe_get_trap_addr() local
1747 if (unlikely(utask && utask->active_uprobe)) in uprobe_get_trap_addr()
1748 return utask->vaddr; in uprobe_get_trap_addr()
1767 struct uprobe_task *utask = t->utask; in uprobe_free_utask() local
1770 if (!utask) in uprobe_free_utask()
1773 if (utask->active_uprobe) in uprobe_free_utask()
1774 put_uprobe(utask->active_uprobe); in uprobe_free_utask()
1776 ri = utask->return_instances; in uprobe_free_utask()
1781 kfree(utask); in uprobe_free_utask()
1782 t->utask = NULL; in uprobe_free_utask()
1795 if (!current->utask) in get_utask()
1796 current->utask = kzalloc(sizeof(struct uprobe_task), GFP_KERNEL); in get_utask()
1797 return current->utask; in get_utask()
1808 t->utask = n_utask; in dup_utask()
1839 if (!__create_xol_area(current->utask->dup_xol_addr) && in dup_xol_work()
1849 struct uprobe_task *utask = current->utask; in uprobe_copy_process() local
1853 t->utask = NULL; in uprobe_copy_process()
1855 if (!utask || !utask->return_instances) in uprobe_copy_process()
1861 if (dup_utask(t, utask)) in uprobe_copy_process()
1872 t->utask->dup_xol_addr = area->vaddr; in uprobe_copy_process()
1873 init_task_work(&t->utask->dup_xol_work, dup_xol_work); in uprobe_copy_process()
1874 task_work_add(t, &t->utask->dup_xol_work, TWA_RESUME); in uprobe_copy_process()
1896 static void cleanup_return_instances(struct uprobe_task *utask, bool chained, in cleanup_return_instances() argument
1899 struct return_instance *ri = utask->return_instances; in cleanup_return_instances()
1904 utask->depth--; in cleanup_return_instances()
1906 utask->return_instances = ri; in cleanup_return_instances()
1912 struct uprobe_task *utask; in prepare_uretprobe() local
1919 utask = get_utask(); in prepare_uretprobe()
1920 if (!utask) in prepare_uretprobe()
1923 if (utask->depth >= MAX_URETPROBE_DEPTH) { in prepare_uretprobe()
1945 cleanup_return_instances(utask, chained, regs); in prepare_uretprobe()
1953 if (!utask->return_instances) { in prepare_uretprobe()
1961 orig_ret_vaddr = utask->return_instances->orig_ret_vaddr; in prepare_uretprobe()
1969 utask->depth++; in prepare_uretprobe()
1970 ri->next = utask->return_instances; in prepare_uretprobe()
1971 utask->return_instances = ri; in prepare_uretprobe()
1983 struct uprobe_task *utask; in pre_ssout() local
1987 utask = get_utask(); in pre_ssout()
1988 if (!utask) in pre_ssout()
2000 utask->xol_vaddr = xol_vaddr; in pre_ssout()
2001 utask->vaddr = bp_vaddr; in pre_ssout()
2009 utask->active_uprobe = uprobe; in pre_ssout()
2010 utask->state = UTASK_SSTEP; in pre_ssout()
2029 struct uprobe_task *utask = t->utask; in uprobe_deny_signal() local
2031 if (likely(!utask || !utask->active_uprobe)) in uprobe_deny_signal()
2034 WARN_ON_ONCE(utask->state != UTASK_SSTEP); in uprobe_deny_signal()
2042 utask->state = UTASK_SSTEP_TRAPPED; in uprobe_deny_signal()
2135 current->utask->auprobe = &uprobe->arch; in handler_chain()
2153 current->utask->auprobe = NULL; in handler_chain()
2201 struct uprobe_task *utask; in uprobe_handle_trampoline() local
2205 utask = current->utask; in uprobe_handle_trampoline()
2206 if (!utask) in uprobe_handle_trampoline()
2209 ri = utask->return_instances; in uprobe_handle_trampoline()
2233 utask->return_instances = ri->next; in uprobe_handle_trampoline()
2237 utask->depth--; in uprobe_handle_trampoline()
2241 utask->return_instances = ri; in uprobe_handle_trampoline()
2340 static void handle_singlestep(struct uprobe_task *utask, struct pt_regs *regs) in handle_singlestep() argument
2345 uprobe = utask->active_uprobe; in handle_singlestep()
2346 if (utask->state == UTASK_SSTEP_ACK) in handle_singlestep()
2348 else if (utask->state == UTASK_SSTEP_TRAPPED) in handle_singlestep()
2354 utask->active_uprobe = NULL; in handle_singlestep()
2355 utask->state = UTASK_RUNNING; in handle_singlestep()
2381 struct uprobe_task *utask; in uprobe_notify_resume() local
2385 utask = current->utask; in uprobe_notify_resume()
2386 if (utask && utask->active_uprobe) in uprobe_notify_resume()
2387 handle_singlestep(utask, regs); in uprobe_notify_resume()
2402 (!current->utask || !current->utask->return_instances)) in uprobe_pre_sstep_notifier()
2415 struct uprobe_task *utask = current->utask; in uprobe_post_sstep_notifier() local
2417 if (!current->mm || !utask || !utask->active_uprobe) in uprobe_post_sstep_notifier()
2421 utask->state = UTASK_SSTEP_ACK; in uprobe_post_sstep_notifier()