Lines Matching refs:ip

78 static inline unsigned long orc_ip(const int *ip)  in orc_ip()  argument
80 return (unsigned long)ip + *ip; in orc_ip()
84 unsigned int num_entries, unsigned long ip) in __orc_find() argument
102 if (orc_ip(mid) <= ip) { in __orc_find()
113 static struct orc_entry *orc_module_find(unsigned long ip) in orc_module_find() argument
117 mod = __module_address(ip); in orc_module_find()
121 mod->arch.num_orcs, ip); in orc_module_find()
124 static struct orc_entry *orc_module_find(unsigned long ip) in orc_module_find() argument
131 static struct orc_entry *orc_find(unsigned long ip);
143 static struct orc_entry *orc_ftrace_find(unsigned long ip) in orc_ftrace_find() argument
148 ops = ftrace_ops_trampoline(ip); in orc_ftrace_find()
159 offset = ip - ops->trampoline; in orc_ftrace_find()
163 if (ip == tramp_addr) in orc_ftrace_find()
169 static struct orc_entry *orc_ftrace_find(unsigned long ip) in orc_ftrace_find() argument
198 static struct orc_entry *orc_find(unsigned long ip) in orc_find() argument
202 if (ip == 0) in orc_find()
206 if (ip >= LOOKUP_START_IP && ip < LOOKUP_STOP_IP) { in orc_find()
209 idx = (ip - LOOKUP_START_IP) / LOOKUP_BLOCK_SIZE; in orc_find()
213 idx, lookup_num_blocks, (void *)ip); in orc_find()
223 idx, lookup_num_blocks, start, stop, (void *)ip); in orc_find()
228 __start_orc_unwind + start, stop - start, ip); in orc_find()
232 if (is_kernel_inittext(ip)) in orc_find()
234 __stop_orc_unwind_ip - __start_orc_unwind_ip, ip); in orc_find()
237 orc = orc_module_find(ip); in orc_find()
241 return orc_ftrace_find(ip); in orc_find()
369 return __kernel_text_address(state->ip) ? state->ip : 0; in unwind_get_return_address()
379 return &state->regs->ip; in unwind_get_return_address_ptr()
411 unsigned long *ip, unsigned long *sp) in deref_stack_regs() argument
421 *ip = READ_ONCE_NOCHECK(regs->ip); in deref_stack_regs()
427 unsigned long *ip, unsigned long *sp) in deref_stack_iret_regs() argument
434 *ip = READ_ONCE_NOCHECK(regs->ip); in deref_stack_iret_regs()
470 unsigned long ip_p, sp, tmp, orig_ip = state->ip, prev_sp = state->sp; in unwind_next_frame()
494 orc = orc_find(state->signal ? state->ip : state->ip - 1); in unwind_next_frame()
537 (void *)state->ip); in unwind_next_frame()
545 (void *)state->ip); in unwind_next_frame()
553 (void *)state->ip); in unwind_next_frame()
561 (void *)state->ip); in unwind_next_frame()
568 orc->sp_reg, (void *)state->ip); in unwind_next_frame()
585 if (!deref_stack_reg(state, ip_p, &state->ip)) in unwind_next_frame()
588 state->ip = unwind_recover_ret_addr(state, state->ip, in unwind_next_frame()
596 if (!deref_stack_regs(state, sp, &state->ip, &state->sp)) { in unwind_next_frame()
611 state->ip = unwind_recover_rethook(state, state->ip, in unwind_next_frame()
619 if (!deref_stack_iret_regs(state, sp, &state->ip, &state->sp)) { in unwind_next_frame()
625 state->ip = unwind_recover_rethook(state, state->ip, in unwind_next_frame()
706 state->ip = regs->ip; in __unwind_start()
717 : "=r" (state->ip), "=r" (state->sp), in __unwind_start()
725 state->ip = READ_ONCE_NOCHECK(frame->ret_addr); in __unwind_start()
726 state->signal = (void *)state->ip == ret_from_fork; in __unwind_start()