| /arch/arm/kernel/ |
| A D | stacktrace.c | 63 low = frame->sp; in frame_pointer_check() 89 if (frame->ex_frame) { in unwind_frame() 108 frame->sp = frame->fp; in unwind_frame() 118 frame->pc = kretprobe_find_ret_addr(frame->tsk, in unwind_frame() 119 (void *)frame->fp, &frame->kr_cur); in unwind_frame() 149 frame->fp = fp; in start_stack_trace() 150 frame->sp = sp; in start_stack_trace() 151 frame->lr = lr; in start_stack_trace() 152 frame->pc = pc; in start_stack_trace() 155 frame->tsk = task; in start_stack_trace() [all …]
|
| A D | unwind.c | 413 sp_low = frame->sp; in unwind_frame() 418 frame->pc, frame->lr, frame->sp); 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() 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() 510 if (frame->pc == ctrl.vrs[PC] && frame->sp == ctrl.vrs[SP]) in unwind_frame() 557 frame.lr = 0; in unwind_backtrace() [all …]
|
| A D | signal.c | 71 if (__copy_from_user(kframe, frame, sizeof(*frame))) in restore_iwmmxt_context() 123 err = __copy_from_user(&frame, *auxp, sizeof(frame)); in restore_vfp_context() 127 if (frame.magic != VFP_MAGIC || frame.size != VFP_STORAGE_SIZE) in restore_vfp_context() 131 return vfp_restore_user_hwstate(&frame.ufp, &frame.ufp_exc); in restore_vfp_context() 204 if (!access_ok(frame, sizeof (*frame))) in sys_sigreturn() 234 if (!access_ok(frame, sizeof (*frame))) in sys_rt_sigreturn() 315 frame = NULL; in get_sigframe() 317 return frame; in get_sigframe() 452 if (!frame) in setup_frame() 462 err = setup_return(regs, ksig, frame->retcode, frame); in setup_frame() [all …]
|
| A D | return_address.c | 36 struct stackframe frame; in return_address() local 41 frame.fp = (unsigned long)__builtin_frame_address(0); in return_address() 42 frame.sp = current_stack_pointer; in return_address() 43 frame.lr = (unsigned long)__builtin_return_address(0); in return_address() 45 frame.pc = (unsigned long)&&here; in return_address() 47 frame.kr_cur = NULL; in return_address() 48 frame.tsk = current; in return_address() 50 frame.ex_frame = false; in return_address() 52 walk_stackframe(&frame, save_return_addr, &data); in return_address()
|
| /arch/x86/um/ |
| A D | signal.c | 240 if (!access_ok(frame, sizeof(*frame))) in setup_signal_stack_sc() 244 frame = (struct sigframe __user *)((unsigned long)frame - math_size); in setup_signal_stack_sc() 253 fp_to = (unsigned long)frame + sizeof(*frame); in setup_signal_stack_sc() 296 if (!access_ok(frame, sizeof(*frame))) in setup_signal_stack_si() 308 err |= __put_user(&frame->info, (void __user * __user *)&frame->pinfo); in setup_signal_stack_si() 309 err |= __put_user(&frame->uc, (void __user * __user *)&frame->puc); in setup_signal_stack_si() 312 fp_to = (unsigned long)frame + sizeof(*frame); in setup_signal_stack_si() 378 frame = (void __user *)((unsigned long)frame - math_size); in setup_signal_stack_si() 381 frame = (void __user *)round_down((unsigned long)frame, 16); in setup_signal_stack_si() 386 if (!access_ok(frame, sizeof(*frame) + math_size)) in setup_signal_stack_si() [all …]
|
| /arch/mips/kernel/ |
| A D | signal_n32.c | 53 struct rt_sigframe_n32 __user *frame; in sysn32_rt_sigreturn() local 60 if (!access_ok(frame, sizeof(*frame))) in sysn32_rt_sigreturn() 93 struct rt_sigframe_n32 __user *frame; in setup_rt_frame_n32() local 96 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_n32() 97 if (!access_ok(frame, sizeof (*frame))) in setup_rt_frame_n32() 104 err |= __put_user(0, &frame->rs_uc.uc_flags); in setup_rt_frame_n32() 105 err |= __put_user(0, &frame->rs_uc.uc_link); in setup_rt_frame_n32() 124 regs->regs[ 5] = (unsigned long) &frame->rs_info; in setup_rt_frame_n32() 125 regs->regs[ 6] = (unsigned long) &frame->rs_uc; in setup_rt_frame_n32() 126 regs->regs[29] = (unsigned long) frame; in setup_rt_frame_n32() [all …]
|
| A D | signal_o32.c | 118 struct sigframe32 __user *frame; in setup_frame_32() local 121 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame_32() 122 if (!access_ok(frame, sizeof (*frame))) in setup_frame_32() 144 regs->regs[29] = (unsigned long) frame; in setup_frame_32() 157 struct rt_sigframe32 __user *frame; in sys32_rt_sigreturn() local 164 if (!access_ok(frame, sizeof(*frame))) in sys32_rt_sigreturn() 197 struct rt_sigframe32 __user *frame; in setup_rt_frame_32() local 200 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_32() 201 if (!access_ok(frame, sizeof (*frame))) in setup_rt_frame_32() 259 struct sigframe32 __user *frame; in sys32_sigreturn() local [all …]
|
| /arch/arm64/kernel/pi/ |
| A D | patch-scs.c | 156 const u8 *opcode = frame->opcodes; in scs_handle_fde_frame() 160 loc = (u64)&frame->initial_loc64 + frame->initial_loc64; in scs_handle_fde_frame() 161 opcode = frame->opcodes64; in scs_handle_fde_frame() 238 if (frame->size == 0 || in scs_patch() 239 frame->size == U32_MAX || in scs_patch() 240 frame->size > size) in scs_patch() 243 if (frame->cie_id_or_pointer == 0) { in scs_patch() 263 frame->augmentation_data_size != 1) in scs_patch() 268 switch (frame->fde_pointer_format) { in scs_patch() 287 p += sizeof(frame->size) + frame->size; in scs_patch() [all …]
|
| /arch/sh/kernel/ |
| A D | signal_32.c | 165 if (!access_ok(frame, sizeof(*frame))) in sys_sigreturn() 171 sizeof(frame->extramask)))) in sys_sigreturn() 195 if (!access_ok(frame, sizeof(*frame))) in sys_rt_sigreturn() 272 struct sigframe __user *frame; in setup_frame() local 275 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame() 277 if (!access_ok(frame, sizeof(*frame))) in setup_frame() 284 sizeof(frame->extramask)); in setup_frame() 312 regs->regs[15] = (unsigned long) frame; in setup_frame() 338 struct rt_sigframe __user *frame; in setup_rt_frame() local 341 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame() [all …]
|
| A D | return_address.c | 18 struct dwarf_frame *frame; in return_address() local 22 for (i = 0, frame = NULL, ra = 0; i <= depth; i++) { in return_address() 25 tmp = dwarf_unwind_stack(ra, frame); in return_address() 29 if (frame) in return_address() 30 dwarf_free_frame(frame); in return_address() 32 frame = tmp; in return_address() 34 if (!frame || !frame->return_addr) in return_address() 37 ra = frame->return_addr; in return_address() 43 if (frame) in return_address() 44 dwarf_free_frame(frame); in return_address()
|
| A D | dwarf.c | 624 if (!frame) { in dwarf_unwind_stack() 630 frame->flags = 0; in dwarf_unwind_stack() 631 frame->prev = prev; in dwarf_unwind_stack() 661 frame, pc); in dwarf_unwind_stack() 665 fde, frame, pc); in dwarf_unwind_stack() 686 frame->cfa = dwarf_read_arch_reg(frame->cfa_register); in dwarf_unwind_stack() 689 frame->cfa += frame->cfa_offset; in dwarf_unwind_stack() 728 return frame; in dwarf_unwind_stack() 975 _frame = frame; in dwarf_unwinder_dump() 977 if (!frame || !frame->return_addr) in dwarf_unwinder_dump() [all …]
|
| /arch/xtensa/kernel/ |
| A D | stacktrace.c | 37 struct stackframe frame; in xtensa_backtrace_user() local 43 frame.pc = pc; in xtensa_backtrace_user() 44 frame.sp = a1; in xtensa_backtrace_user() 81 frame.pc = pc; in xtensa_backtrace_user() 82 frame.sp = a1; in xtensa_backtrace_user() 108 frame.pc = pc; in xtensa_backtrace_user() 109 frame.sp = a1; in xtensa_backtrace_user() 140 frame.pc = pc; in xtensa_backtrace_kernel() 141 frame.sp = a1; in xtensa_backtrace_kernel() 194 frame.sp = a1; in walk_stackframe() [all …]
|
| A D | signal.c | 169 sizeof (frame->xtregs.cp)); in setup_sigcontext() 233 sizeof (frame->xtregs.cp)); in restore_sigcontext() 251 struct rt_sigframe __user *frame; in xtensa_rt_sigreturn() local 263 if (!access_ok(frame, sizeof(*frame))) in xtensa_rt_sigreturn() 271 if (restore_sigcontext(regs, frame)) in xtensa_rt_sigreturn() 345 struct rt_sigframe *frame; in setup_frame() local 368 frame = (void *)((sp - sizeof(*frame)) & -16ul); in setup_frame() 373 if (!access_ok(frame, sizeof(*frame))) { in setup_frame() 386 err |= setup_sigcontext(frame, regs); in setup_frame() 402 err |= gen_return_code(frame->retcode); in setup_frame() [all …]
|
| /arch/riscv/kernel/ |
| A D | compat_signal.c | 122 struct compat_rt_sigframe __user *frame; in COMPAT_SYSCALL_DEFINE0() local 131 if (!access_ok(frame, sizeof(*frame))) in COMPAT_SYSCALL_DEFINE0() 153 frame, (void *)regs->epc, (void *)regs->sp); in COMPAT_SYSCALL_DEFINE0() 202 struct compat_rt_sigframe __user *frame; in compat_setup_rt_frame() local 205 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame() 206 if (!access_ok(frame, sizeof(*frame))) in compat_setup_rt_frame() 212 err |= __put_user(0, &frame->uc.uc_flags); in compat_setup_rt_frame() 213 err |= __put_user(NULL, &frame->uc.uc_link); in compat_setup_rt_frame() 215 err |= compat_setup_sigcontext(frame, regs); in compat_setup_rt_frame() 231 regs->sp = (unsigned long)frame; in compat_setup_rt_frame() [all …]
|
| /arch/arm/include/asm/ |
| A D | stacktrace.h | 37 void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame) in arm_get_current_stackframe() argument 39 frame->fp = frame_pointer(regs); in arm_get_current_stackframe() 40 frame->sp = regs->ARM_sp; in arm_get_current_stackframe() 41 frame->lr = regs->ARM_lr; in arm_get_current_stackframe() 42 frame->pc = regs->ARM_pc; in arm_get_current_stackframe() 44 frame->kr_cur = NULL; in arm_get_current_stackframe() 45 frame->tsk = current; in arm_get_current_stackframe() 48 frame->ex_frame = in_entry_text(frame->pc); in arm_get_current_stackframe() 52 extern int unwind_frame(struct stackframe *frame); 53 extern void walk_stackframe(struct stackframe *frame,
|
| /arch/arc/include/asm/ |
| A D | unwind.h | 55 #define UNW_PC(frame) ((frame)->regs.r63) argument 56 #define UNW_SP(frame) ((frame)->regs.r28) argument 57 #define UNW_BLINK(frame) ((frame)->regs.r31) argument 61 #define UNW_FP(frame) ((frame)->regs.r27) argument 67 #define UNW_FP(frame) ((void)(frame), 0) argument 110 extern int arc_unwind(struct unwind_frame_info *frame); 143 #define UNW_PC(frame) ((void)(frame), 0) argument 144 #define UNW_SP(frame) ((void)(frame), 0) argument 145 #define UNW_FP(frame) ((void)(frame), 0) argument
|
| /arch/csky/kernel/ |
| A D | signal.c | 72 struct rt_sigframe __user *frame; in SYSCALL_DEFINE0() local 78 frame = (struct rt_sigframe __user *)regs->usp; in SYSCALL_DEFINE0() 80 if (!access_ok(frame, sizeof(*frame))) in SYSCALL_DEFINE0() 91 if (restore_altstack(&frame->uc.uc_stack)) in SYSCALL_DEFINE0() 139 struct rt_sigframe __user *frame; in setup_rt_frame() local 142 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 143 if (!access_ok(frame, sizeof(*frame))) in setup_rt_frame() 149 err |= __put_user(0, &frame->uc.uc_flags); in setup_rt_frame() 150 err |= __put_user(NULL, &frame->uc.uc_link); in setup_rt_frame() 152 err |= setup_sigcontext(frame, regs); in setup_rt_frame() [all …]
|
| /arch/openrisc/kernel/ |
| A D | signal.c | 115 if (((unsigned long)frame) & 3) in _sys_rt_sigreturn() 118 if (!access_ok(frame, sizeof(*frame))) in _sys_rt_sigreturn() 125 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in _sys_rt_sigreturn() 128 if (restore_altstack(&frame->uc.uc_stack)) in _sys_rt_sigreturn() 191 struct rt_sigframe __user *frame; in setup_rt_frame() local 195 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 197 if (!access_ok(frame, sizeof(*frame))) in setup_rt_frame() 205 err |= __put_user(0, &frame->uc.uc_flags); in setup_rt_frame() 206 err |= __put_user(NULL, &frame->uc.uc_link); in setup_rt_frame() 216 return_ip = (unsigned long)&frame->retcode; in setup_rt_frame() [all …]
|
| /arch/arm64/kernel/ |
| A D | signal32.c | 249 if (!access_ok(frame, sizeof (*frame))) in COMPAT_SYSCALL_DEFINE0() 280 if (!access_ok(frame, sizeof (*frame))) in COMPAT_SYSCALL_DEFINE0() 301 void __user *frame; in compat_get_sigframe() local 312 frame = NULL; in compat_get_sigframe() 314 return frame; in compat_get_sigframe() 412 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame() 414 if (!frame) in compat_setup_rt_frame() 427 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); in compat_setup_rt_frame() 441 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_frame() 443 if (!frame) in compat_setup_frame() [all …]
|
| /arch/x86/kernel/ |
| A D | signal_32.c | 157 if (!access_ok(frame, sizeof(*frame))) in SYSCALL32_DEFINE0() 184 if (!access_ok(frame, sizeof(*frame))) in SYSCALL32_DEFINE0() 277 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_frame() 287 restorer = &frame->retcode; in ia32_setup_frame() 290 if (!user_access_begin(frame, sizeof(*frame))) in ia32_setup_frame() 305 regs->sp = (unsigned long) frame; in ia32_setup_frame() 350 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_rt_frame() 352 if (!user_access_begin(frame, sizeof(*frame))) in ia32_setup_rt_frame() 356 unsafe_put_user(ptr_to_compat(&frame->info), &frame->pinfo, Efault); in ia32_setup_rt_frame() 357 unsafe_put_user(ptr_to_compat(&frame->uc), &frame->puc, Efault); in ia32_setup_rt_frame() [all …]
|
| A D | signal_64.c | 167 struct rt_sigframe __user *frame; in x64_setup_rt_frame() local 178 if (!user_access_begin(frame, sizeof(*frame))) in x64_setup_rt_frame() 209 regs->dx = (unsigned long)&frame->uc; in x64_setup_rt_frame() 212 regs->sp = (unsigned long)frame; in x64_setup_rt_frame() 249 struct rt_sigframe __user *frame; in SYSCALL_DEFINE0() local 256 if (!access_ok(frame, sizeof(*frame))) in SYSCALL_DEFINE0() 308 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local 316 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in x32_setup_rt_frame() 323 if (!user_access_begin(frame, sizeof(*frame))) in x32_setup_rt_frame() 343 regs->sp = (unsigned long) frame; in x32_setup_rt_frame() [all …]
|
| /arch/s390/kernel/ |
| A D | process.c | 116 } *frame; in copy_thread() local 119 p->thread.ksp = (unsigned long) frame; in copy_thread() 136 frame->sf.back_chain = 0; in copy_thread() 137 frame->sf.gprs[11 - 6] = (unsigned long)&frame->childregs; in copy_thread() 138 frame->sf.gprs[12 - 6] = (unsigned long)p; in copy_thread() 142 frame->sf.gprs[15 - 6] = (unsigned long)frame; in copy_thread() 152 frame->childregs.orig_gpr2 = -1; in copy_thread() 153 frame->childregs.last_break = 1; in copy_thread() 156 frame->childregs = *current_pt_regs(); in copy_thread() 158 frame->childregs.flags = 0; in copy_thread() [all …]
|
| A D | compat_signal.c | 255 sigframe32 __user *frame; in setup_frame32() local 264 frame_size = sizeof(*frame) - sizeof(frame->sregs_ext.__reserved); in setup_frame32() 269 if (frame == (void __user *) -1UL) in setup_frame32() 280 if (__put_user(ptr_to_compat(&frame->sregs), &frame->sc.sregs)) in setup_frame32() 287 if (save_sigregs32(regs, &frame->sregs)) in setup_frame32() 309 regs->gprs[15] = (__force __u64) frame; in setup_frame32() 335 rt_sigframe32 __user *frame; in setup_rt_frame32() local 340 frame_size = sizeof(*frame) - in setup_rt_frame32() 355 if (frame == (void __user *) -1UL) in setup_rt_frame32() 380 __put_user(0, &frame->uc.uc_link) || in setup_rt_frame32() [all …]
|
| A D | signal.c | 218 struct sigframe __user *frame = in SYSCALL_DEFINE0() local 240 struct rt_sigframe __user *frame = in SYSCALL_DEFINE0() local 288 struct sigframe __user *frame; in setup_frame() local 299 frame_size = sizeof(*frame) - sizeof(frame->sregs_ext); in setup_frame() 303 if (frame == (void __user *) -1UL) in setup_frame() 313 if (__copy_to_user(&frame->sc, &sc, sizeof(frame->sc))) in setup_frame() 320 if (save_sigregs(regs, &frame->sregs)) in setup_frame() 340 regs->gprs[15] = (unsigned long) frame; in setup_frame() 365 struct rt_sigframe __user *frame; in setup_rt_frame() local 382 if (frame == (void __user *) -1UL) in setup_rt_frame() [all …]
|
| /arch/loongarch/kernel/ |
| A D | stacktrace.c | 84 copy_stack_frame(unsigned long fp, struct stack_frame *frame) in copy_stack_frame() argument 91 if (!access_ok(user_frame_tail, sizeof(*frame))) in copy_stack_frame() 95 err = (__copy_from_user_inatomic(frame, user_frame_tail, sizeof(*frame))); in copy_stack_frame() 96 if (err || (unsigned long)user_frame_tail >= frame->fp) in copy_stack_frame() 109 struct stack_frame frame; in arch_stack_walk_user() local 111 frame.fp = 0; in arch_stack_walk_user() 112 frame.ra = 0; in arch_stack_walk_user() 113 if (!copy_stack_frame(fp, &frame)) in arch_stack_walk_user() 115 if (!frame.ra) in arch_stack_walk_user() 117 if (!consume_entry(cookie, frame.ra)) in arch_stack_walk_user() [all …]
|