Lines Matching refs:frame

36 void start_backtrace(struct stackframe *frame, unsigned long fp,  in start_backtrace()  argument
39 frame->fp = fp; in start_backtrace()
40 frame->pc = pc; in start_backtrace()
42 frame->kr_cur = NULL; in start_backtrace()
54 bitmap_zero(frame->stacks_done, __NR_STACK_TYPES); in start_backtrace()
55 frame->prev_fp = 0; in start_backtrace()
56 frame->prev_type = STACK_TYPE_UNKNOWN; in start_backtrace()
66 int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame) in unwind_frame() argument
68 unsigned long fp = frame->fp; in unwind_frame()
84 if (test_bit(info.type, frame->stacks_done)) in unwind_frame()
100 if (info.type == frame->prev_type) { in unwind_frame()
101 if (fp <= frame->prev_fp) in unwind_frame()
104 set_bit(frame->prev_type, frame->stacks_done); in unwind_frame()
111 frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp)); in unwind_frame()
112 frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 8)); in unwind_frame()
113 frame->prev_fp = fp; in unwind_frame()
114 frame->prev_type = info.type; in unwind_frame()
116 frame->pc = ptrauth_strip_insn_pac(frame->pc); in unwind_frame()
120 (frame->pc == (unsigned long)return_to_handler)) { in unwind_frame()
128 orig_pc = ftrace_graph_ret_addr(tsk, NULL, frame->pc, in unwind_frame()
129 (void *)frame->fp); in unwind_frame()
130 if (WARN_ON_ONCE(frame->pc == orig_pc)) in unwind_frame()
132 frame->pc = orig_pc; in unwind_frame()
136 if (is_kretprobe_trampoline(frame->pc)) in unwind_frame()
137 frame->pc = kretprobe_find_ret_addr(tsk, (void *)frame->fp, &frame->kr_cur); in unwind_frame()
144 void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, in walk_stackframe() argument
150 if (!fn(data, frame->pc)) in walk_stackframe()
152 ret = unwind_frame(tsk, frame); in walk_stackframe()
167 struct stackframe frame; in dump_backtrace() local
185 start_backtrace(&frame, in dump_backtrace()
192 start_backtrace(&frame, in dump_backtrace()
201 dump_backtrace_entry(frame.pc, loglvl); in dump_backtrace()
202 } else if (frame.fp == regs->regs[29]) { in dump_backtrace()
213 } while (!unwind_frame(tsk, &frame)); in dump_backtrace()
230 struct stackframe frame; in arch_stack_walk() local
233 start_backtrace(&frame, regs->regs[29], regs->pc); in arch_stack_walk()
235 start_backtrace(&frame, in arch_stack_walk()
239 start_backtrace(&frame, thread_saved_fp(task), in arch_stack_walk()
242 walk_stackframe(task, &frame, consume_entry, cookie); in arch_stack_walk()