Lines Matching refs:frame

406 int unwind_frame(struct stackframe *frame)  in unwind_frame()  argument
413 sp_low = frame->sp; in unwind_frame()
418 frame->pc, frame->lr, frame->sp); in unwind_frame()
420 idx = unwind_find_idx(frame->pc); in unwind_frame()
422 if (frame->pc && kernel_text_address(frame->pc)) { in unwind_frame()
423 if (in_module_plt(frame->pc) && frame->pc != frame->lr) { in unwind_frame()
429 frame->pc = frame->lr; in unwind_frame()
432 pr_warn("unwind: Index not found %08lx\n", frame->pc); in unwind_frame()
437 ctrl.vrs[FP] = frame->fp; in unwind_frame()
438 ctrl.vrs[SP] = frame->sp; in unwind_frame()
439 ctrl.vrs[LR] = frame->lr; in unwind_frame()
445 else if (frame->pc == prel31_to_addr(&idx->addr_offset)) { in unwind_frame()
454 if (frame->pc == frame->lr) in unwind_frame()
456 frame->pc = frame->lr; in unwind_frame()
491 sp_low = frame->fp; in unwind_frame()
492 ctrl.sp_high = ALIGN(frame->fp, THREAD_SIZE); in unwind_frame()
510 if (frame->pc == ctrl.vrs[PC] && frame->sp == ctrl.vrs[SP]) in unwind_frame()
513 frame->fp = ctrl.vrs[FP]; in unwind_frame()
514 frame->sp = ctrl.vrs[SP]; in unwind_frame()
515 frame->lr = ctrl.vrs[LR]; in unwind_frame()
516 frame->pc = ctrl.vrs[PC]; in unwind_frame()
517 frame->lr_addr = ctrl.lr_addr; in unwind_frame()
525 struct stackframe frame; in unwind_backtrace() local
533 arm_get_current_stackframe(regs, &frame); in unwind_backtrace()
536 frame.pc = regs->ARM_lr; in unwind_backtrace()
538 frame.fp = (unsigned long)__builtin_frame_address(0); in unwind_backtrace()
539 frame.sp = current_stack_pointer; in unwind_backtrace()
540 frame.lr = (unsigned long)__builtin_return_address(0); in unwind_backtrace()
546 frame.pc = (unsigned long)&&here; in unwind_backtrace()
549 frame.fp = thread_saved_fp(tsk); in unwind_backtrace()
550 frame.sp = thread_saved_sp(tsk); in unwind_backtrace()
555 frame.lr = 0; in unwind_backtrace()
556 frame.pc = thread_saved_pc(tsk); in unwind_backtrace()
561 unsigned long where = frame.pc; in unwind_backtrace()
563 urc = unwind_frame(&frame); in unwind_backtrace()
566 dump_backtrace_entry(where, frame.pc, frame.sp - 4, loglvl); in unwind_backtrace()