/arch/frv/kernel/ |
D | signal.c | 87 struct sigframe __user *frame = (struct sigframe __user *) __frame->sp; in sys_sigreturn() local 91 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn() 93 if (__get_user(set.sig[0], &frame->sc.sc_oldmask)) in sys_sigreturn() 97 __copy_from_user(&set.sig[1], &frame->extramask, sizeof(frame->extramask))) in sys_sigreturn() 102 if (restore_sigcontext(&frame->sc, &gr8)) in sys_sigreturn() 113 struct rt_sigframe __user *frame = (struct rt_sigframe __user *) __frame->sp; in sys_rt_sigreturn() local 117 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn() 119 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn() 124 if (restore_sigcontext(&frame->uc.uc_mcontext, &gr8)) in sys_rt_sigreturn() 127 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn() [all …]
|
/arch/mn10300/kernel/ |
D | signal.c | 96 struct sigframe __user *frame; in sys_sigreturn() local 100 frame = (struct sigframe __user *) current_frame()->sp; in sys_sigreturn() 101 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn() 103 if (__get_user(set.sig[0], &frame->sc.oldmask)) in sys_sigreturn() 107 __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn() 108 sizeof(frame->extramask))) in sys_sigreturn() 113 if (restore_sigcontext(current_frame(), &frame->sc, &d0)) in sys_sigreturn() 128 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local 132 frame = (struct rt_sigframe __user *) current_frame()->sp; in sys_rt_sigreturn() 133 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn() [all …]
|
/arch/arm64/kernel/ |
D | stacktrace.c | 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() [all …]
|
D | time.c | 47 struct stackframe frame; in profile_pc() local 52 frame.fp = regs->regs[29]; in profile_pc() 53 frame.sp = regs->sp; in profile_pc() 54 frame.pc = regs->pc; in profile_pc() 56 frame.graph = -1; /* no task info */ in profile_pc() 59 int ret = unwind_frame(NULL, &frame); in profile_pc() 62 } while (in_lock_functions(frame.pc)); in profile_pc() 64 return frame.pc; in profile_pc()
|
/arch/cris/arch-v10/kernel/ |
D | signal.c | 107 struct sigframe __user *frame = (struct sigframe *)rdusp(); in sys_sigreturn() local 115 if (((long)frame) & 3) in sys_sigreturn() 118 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn() 120 if (__get_user(set.sig[0], &frame->sc.oldmask) in sys_sigreturn() 122 && __copy_from_user(&set.sig[1], frame->extramask, in sys_sigreturn() 123 sizeof(frame->extramask)))) in sys_sigreturn() 128 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn() 143 struct rt_sigframe __user *frame = (struct rt_sigframe *)rdusp(); in sys_rt_sigreturn() local 151 if (((long)frame) & 3) in sys_rt_sigreturn() 154 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn() [all …]
|
/arch/arm/kernel/ |
D | stacktrace.c | 25 int notrace unwind_frame(struct stackframe *frame) in unwind_frame() argument 28 unsigned long fp = frame->fp; in unwind_frame() 31 low = frame->sp; in unwind_frame() 39 frame->fp = *(unsigned long *)(fp - 12); in unwind_frame() 40 frame->sp = *(unsigned long *)(fp - 8); in unwind_frame() 41 frame->pc = *(unsigned long *)(fp - 4); in unwind_frame() 47 void notrace walk_stackframe(struct stackframe *frame, in walk_stackframe() argument 53 if (fn(frame, data)) in walk_stackframe() 55 ret = unwind_frame(frame); in walk_stackframe() 70 static int save_trace(struct stackframe *frame, void *d) in save_trace() argument [all …]
|
D | signal.c | 30 static int preserve_crunch_context(struct crunch_sigframe __user *frame) in preserve_crunch_context() argument 32 char kbuf[sizeof(*frame) + 8]; in preserve_crunch_context() 40 return __copy_to_user(frame, kframe, sizeof(*frame)); in preserve_crunch_context() 43 static int restore_crunch_context(struct crunch_sigframe __user *frame) in restore_crunch_context() argument 45 char kbuf[sizeof(*frame) + 8]; in restore_crunch_context() 50 if (__copy_from_user(kframe, frame, sizeof(*frame))) in restore_crunch_context() 62 static int preserve_iwmmxt_context(struct iwmmxt_sigframe *frame) in preserve_iwmmxt_context() argument 64 char kbuf[sizeof(*frame) + 8]; in preserve_iwmmxt_context() 72 return __copy_to_user(frame, kframe, sizeof(*frame)); in preserve_iwmmxt_context() 75 static int restore_iwmmxt_context(struct iwmmxt_sigframe *frame) in restore_iwmmxt_context() argument [all …]
|
D | return_address.c | 24 static int save_return_addr(struct stackframe *frame, void *d) in save_return_addr() argument 29 data->addr = (void *)frame->pc; in save_return_addr() 41 struct stackframe frame; in return_address() local 46 frame.fp = (unsigned long)__builtin_frame_address(0); in return_address() 47 frame.sp = current_stack_pointer; in return_address() 48 frame.lr = (unsigned long)__builtin_return_address(0); in return_address() 49 frame.pc = (unsigned long)return_address; in return_address() 51 walk_stackframe(&frame, save_return_addr, &data); in return_address()
|
/arch/unicore32/kernel/ |
D | stacktrace.c | 35 int notrace unwind_frame(struct stackframe *frame) in unwind_frame() argument 38 unsigned long fp = frame->fp; in unwind_frame() 41 low = frame->sp; in unwind_frame() 49 frame->fp = *(unsigned long *)(fp - 12); in unwind_frame() 50 frame->sp = *(unsigned long *)(fp - 8); in unwind_frame() 51 frame->pc = *(unsigned long *)(fp - 4); in unwind_frame() 57 void notrace walk_stackframe(struct stackframe *frame, in walk_stackframe() argument 63 if (fn(frame, data)) in walk_stackframe() 65 ret = unwind_frame(frame); in walk_stackframe() 79 static int save_trace(struct stackframe *frame, void *d) in save_trace() argument [all …]
|
/arch/mips/kernel/ |
D | signal_n32.c | 69 struct rt_sigframe_n32 __user *frame; in sysn32_rt_sigreturn() local 73 frame = (struct rt_sigframe_n32 __user *) regs.regs[29]; in sysn32_rt_sigreturn() 74 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sysn32_rt_sigreturn() 76 if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask)) in sysn32_rt_sigreturn() 81 sig = restore_sigcontext(®s, &frame->rs_uc.uc_mcontext); in sysn32_rt_sigreturn() 87 if (compat_restore_altstack(&frame->rs_uc.uc_stack)) in sysn32_rt_sigreturn() 107 struct rt_sigframe_n32 __user *frame; in setup_rt_frame_n32() local 110 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_n32() 111 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) in setup_rt_frame_n32() 115 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_n32() [all …]
|
D | signal_o32.c | 116 struct sigframe32 __user *frame; in setup_frame_32() local 119 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame_32() 120 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) in setup_frame_32() 123 err |= setup_sigcontext32(regs, &frame->sf_sc); in setup_frame_32() 124 err |= __copy_conv_sigset_to_user(&frame->sf_mask, set); in setup_frame_32() 141 regs->regs[ 6] = (unsigned long) &frame->sf_sc; in setup_frame_32() 142 regs->regs[29] = (unsigned long) frame; in setup_frame_32() 148 frame, regs->cp0_epc, regs->regs[31]); in setup_frame_32() 155 struct rt_sigframe32 __user *frame; in sys32_rt_sigreturn() local 159 frame = (struct rt_sigframe32 __user *) regs.regs[29]; in sys32_rt_sigreturn() [all …]
|
/arch/sh/kernel/ |
D | return_address.c | 19 struct dwarf_frame *frame; in return_address() local 23 for (i = 0, frame = NULL, ra = 0; i <= depth; i++) { in return_address() 26 tmp = dwarf_unwind_stack(ra, frame); in return_address() 30 if (frame) in return_address() 31 dwarf_free_frame(frame); in return_address() 33 frame = tmp; in return_address() 35 if (!frame || !frame->return_addr) in return_address() 38 ra = frame->return_addr; in return_address() 44 if (frame) in return_address() 45 dwarf_free_frame(frame); in return_address()
|
D | signal_32.c | 154 struct sigframe __user *frame = (struct sigframe __user *)regs->regs[15]; in sys_sigreturn() local 161 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn() 164 if (__get_user(set.sig[0], &frame->sc.oldmask) in sys_sigreturn() 166 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn() 167 sizeof(frame->extramask)))) in sys_sigreturn() 172 if (restore_sigcontext(regs, &frame->sc, &r0)) in sys_sigreturn() 184 struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->regs[15]; in sys_rt_sigreturn() local 191 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn() 194 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn() 199 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &r0)) in sys_rt_sigreturn() [all …]
|
/arch/metag/kernel/ |
D | stacktrace.c | 39 int notrace unwind_frame(struct stackframe *frame) in unwind_frame() argument 41 struct metag_frame *fp = (struct metag_frame *)frame->fp; in unwind_frame() 45 if (frame->fp & 0x7) in unwind_frame() 75 frame->fp = fpnew; in unwind_frame() 76 frame->pc = lr; in unwind_frame() 81 int notrace unwind_frame(struct stackframe *frame) in unwind_frame() argument 83 struct metag_frame *sp = (struct metag_frame *)frame->sp; in unwind_frame() 85 if (frame->sp & 0x7) in unwind_frame() 93 frame->sp = (unsigned long)sp; in unwind_frame() 94 frame->pc = addr; in unwind_frame() [all …]
|
D | signal.c | 74 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local 77 frame = (__force struct rt_sigframe __user *)(regs->REG_SP - in sys_rt_sigreturn() 78 sizeof(*frame)); in sys_rt_sigreturn() 80 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn() 83 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn() 88 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys_rt_sigreturn() 91 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn() 154 struct rt_sigframe __user *frame; in setup_rt_frame() local 158 frame = get_sigframe(ksig, regs->REG_SP); in setup_rt_frame() 159 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in setup_rt_frame() [all …]
|
D | perf_callchain.c | 34 struct metag_frame frame; in user_backtrace() local 40 if (!access_ok(VERIFY_READ, user_frame, sizeof(frame))) in user_backtrace() 42 if (__copy_from_user_inatomic(&frame, user_frame, in user_backtrace() 43 sizeof(frame))) in user_backtrace() 48 calladdr = frame.lr - 4; in user_backtrace() 62 struct metag_frame __user *frame; in perf_callchain_user() local 64 frame = (struct metag_frame __user *)sp; in perf_callchain_user() 66 --frame; in perf_callchain_user() 68 while ((entry->nr < entry->max_stack) && frame) in perf_callchain_user() 69 frame = user_backtrace(frame, entry); in perf_callchain_user()
|
/arch/cris/arch-v32/kernel/ |
D | signal.c | 91 struct signal_frame __user *frame; in sys_sigreturn() local 95 frame = (struct signal_frame *) rdusp(); in sys_sigreturn() 102 if (((long)frame) & 3) in sys_sigreturn() 105 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn() 108 if (__get_user(set.sig[0], &frame->sc.oldmask) || in sys_sigreturn() 110 frame->extramask, in sys_sigreturn() 111 sizeof(frame->extramask)))) in sys_sigreturn() 116 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn() 132 struct rt_signal_frame __user *frame; in sys_rt_sigreturn() local 136 frame = (struct rt_signal_frame *) rdusp(); in sys_rt_sigreturn() [all …]
|
/arch/x86/kernel/ |
D | signal.c | 315 struct sigframe __user *frame; in __setup_frame() local 320 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame() 322 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_frame() 325 if (__put_user(sig, &frame->sig)) in __setup_frame() 328 if (setup_sigcontext(&frame->sc, fpstate, regs, set->sig[0])) in __setup_frame() 332 if (__copy_to_user(&frame->extramask, &set->sig[1], in __setup_frame() 333 sizeof(frame->extramask))) in __setup_frame() 341 restorer = &frame->retcode; in __setup_frame() 346 err |= __put_user(restorer, &frame->pretcode); in __setup_frame() 355 err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode); in __setup_frame() [all …]
|
/arch/xtensa/kernel/ |
D | stacktrace.c | 35 int (*ufn)(struct stackframe *frame, void *data), in xtensa_backtrace_user() argument 43 struct stackframe frame; in xtensa_backtrace_user() local 49 frame.pc = pc; in xtensa_backtrace_user() 50 frame.sp = a1; in xtensa_backtrace_user() 52 if (pc == 0 || pc >= TASK_SIZE || ufn(&frame, data)) in xtensa_backtrace_user() 82 frame.pc = pc; in xtensa_backtrace_user() 83 frame.sp = a1; in xtensa_backtrace_user() 85 if (pc == 0 || pc >= TASK_SIZE || ufn(&frame, data)) in xtensa_backtrace_user() 119 frame.pc = pc; in xtensa_backtrace_user() 120 frame.sp = a1; in xtensa_backtrace_user() [all …]
|
D | signal.c | 135 setup_sigcontext(struct rt_sigframe __user *frame, struct pt_regs *regs) in setup_sigcontext() argument 137 struct sigcontext __user *sc = &frame->uc.uc_mcontext; in setup_sigcontext() 160 err |= __copy_to_user(&frame->xtregs.cp, &ti->xtregs_cp, in setup_sigcontext() 161 sizeof (frame->xtregs.cp)); in setup_sigcontext() 163 err |= __copy_to_user(&frame->xtregs.opt, ®s->xtregs_opt, in setup_sigcontext() 165 err |= __copy_to_user(&frame->xtregs.user, &ti->xtregs_user, in setup_sigcontext() 168 err |= __put_user(err ? NULL : &frame->xtregs, &sc->sc_xtregs); in setup_sigcontext() 174 restore_sigcontext(struct pt_regs *regs, struct rt_sigframe __user *frame) in restore_sigcontext() argument 176 struct sigcontext __user *sc = &frame->uc.uc_mcontext; in restore_sigcontext() 224 err |= __copy_from_user(&ti->xtregs_cp, &frame->xtregs.cp, in restore_sigcontext() [all …]
|
/arch/x86/ia32/ |
D | ia32_signal.c | 118 struct sigframe_ia32 __user *frame = (struct sigframe_ia32 __user *)(regs->sp-8); in sys32_sigreturn() local 121 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_sigreturn() 123 if (__get_user(set.sig[0], &frame->sc.oldmask) in sys32_sigreturn() 126 &frame->extramask, in sys32_sigreturn() 127 sizeof(frame->extramask)))) in sys32_sigreturn() 132 if (ia32_restore_sigcontext(regs, &frame->sc)) in sys32_sigreturn() 137 signal_fault(regs, frame, "32bit sigreturn"); in sys32_sigreturn() 144 struct rt_sigframe_ia32 __user *frame; in sys32_rt_sigreturn() local 147 frame = (struct rt_sigframe_ia32 __user *)(regs->sp - 4); in sys32_rt_sigreturn() 149 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_rt_sigreturn() [all …]
|
/arch/openrisc/kernel/ |
D | signal.c | 75 struct rt_sigframe *frame = (struct rt_sigframe __user *)regs->sp; in _sys_rt_sigreturn() local 83 if (((long)frame) & 3) in _sys_rt_sigreturn() 86 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in _sys_rt_sigreturn() 88 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in _sys_rt_sigreturn() 93 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in _sys_rt_sigreturn() 96 if (restore_altstack(&frame->uc.uc_stack)) in _sys_rt_sigreturn() 158 struct rt_sigframe *frame; in setup_rt_frame() local 162 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 164 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in setup_rt_frame() 169 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() [all …]
|
/arch/arc/include/asm/ |
D | unwind.h | 58 #define UNW_PC(frame) ((frame)->regs.r63) argument 59 #define UNW_SP(frame) ((frame)->regs.r28) argument 60 #define UNW_BLINK(frame) ((frame)->regs.r31) argument 64 #define UNW_FP(frame) ((frame)->regs.r27) argument 70 #define UNW_FP(frame) ((void)(frame), 0) argument 113 extern int arc_unwind(struct unwind_frame_info *frame); 146 #define UNW_PC(frame) ((void)(frame), 0) argument 147 #define UNW_SP(frame) ((void)(frame), 0) argument 148 #define UNW_FP(frame) ((void)(frame), 0) argument
|
/arch/x86/um/ |
D | signal.c | 363 struct sigframe __user *frame; in setup_signal_stack_sc() local 369 frame = (struct sigframe __user *) stack_top - 1; in setup_signal_stack_sc() 370 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in setup_signal_stack_sc() 373 restorer = frame->retcode; in setup_signal_stack_sc() 377 err |= __put_user(restorer, &frame->pretcode); in setup_signal_stack_sc() 378 err |= __put_user(sig, &frame->sig); in setup_signal_stack_sc() 379 err |= copy_sc_to_user(&frame->sc, &frame->fpstate, regs, mask->sig[0]); in setup_signal_stack_sc() 381 err |= __copy_to_user(&frame->extramask, &mask->sig[1], in setup_signal_stack_sc() 382 sizeof(frame->extramask)); in setup_signal_stack_sc() 391 err |= __put_user(0xb858, (short __user *)(frame->retcode+0)); in setup_signal_stack_sc() [all …]
|
/arch/mips/oprofile/ |
D | backtrace.c | 132 struct stackframe *frame, in do_user_backtrace() argument 138 while (depth-- && !unwind_user_frame(frame, max_instr_check)) { in do_user_backtrace() 139 oprofile_add_trace(frame->ra); in do_user_backtrace() 140 if (frame->sp < low_addr || frame->sp > high_addr) in do_user_backtrace() 147 struct stackframe *frame, in do_kernel_backtrace() argument 151 struct stackframe *frame, in do_kernel_backtrace() argument 154 while (depth-- && frame->pc) { in do_kernel_backtrace() 155 frame->pc = unwind_stack_by_address(low_addr, in do_kernel_backtrace() 156 &(frame->sp), in do_kernel_backtrace() 157 frame->pc, in do_kernel_backtrace() [all …]
|