Lines Matching refs:frame
41 int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame) in unwind_frame() argument
44 unsigned long fp = frame->fp; in unwind_frame()
59 low = frame->sp; in unwind_frame()
61 if (on_irq_stack(frame->sp, raw_smp_processor_id())) in unwind_frame()
69 frame->sp = fp + 0x10; in unwind_frame()
70 frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp)); in unwind_frame()
71 frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 8)); in unwind_frame()
75 (frame->pc == (unsigned long)return_to_handler)) { in unwind_frame()
82 frame->pc = tsk->ret_stack[frame->graph--].ret; in unwind_frame()
95 if (frame->sp == irq_stack_ptr) { in unwind_frame()
100 object_is_on_stack((void *)frame->fp)) { in unwind_frame()
101 frame->sp = orig_sp; in unwind_frame()
105 frame->pc = irq_args->pc; in unwind_frame()
119 void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, in walk_stackframe() argument
125 if (fn(frame, data)) in walk_stackframe()
127 ret = unwind_frame(tsk, frame); in walk_stackframe()
140 static int save_trace(struct stackframe *frame, void *d) in save_trace() argument
144 unsigned long addr = frame->pc; in save_trace()
161 struct stackframe frame; in save_stack_trace_regs() local
167 frame.fp = regs->regs[29]; in save_stack_trace_regs()
168 frame.sp = regs->sp; in save_stack_trace_regs()
169 frame.pc = regs->pc; in save_stack_trace_regs()
171 frame.graph = current->curr_ret_stack; in save_stack_trace_regs()
174 walk_stackframe(current, &frame, save_trace, &data); in save_stack_trace_regs()
182 struct stackframe frame; in save_stack_trace_tsk() local
192 frame.fp = thread_saved_fp(tsk); in save_stack_trace_tsk()
193 frame.sp = thread_saved_sp(tsk); in save_stack_trace_tsk()
194 frame.pc = thread_saved_pc(tsk); in save_stack_trace_tsk()
197 frame.fp = (unsigned long)__builtin_frame_address(0); in save_stack_trace_tsk()
198 frame.sp = current_stack_pointer; in save_stack_trace_tsk()
199 frame.pc = (unsigned long)save_stack_trace_tsk; in save_stack_trace_tsk()
202 frame.graph = tsk->curr_ret_stack; in save_stack_trace_tsk()
205 walk_stackframe(tsk, &frame, save_trace, &data); in save_stack_trace_tsk()