Lines Matching refs:frame
206 #define unsafe_put_sigmask(set, frame, label) \ argument
208 (__u64 __user *)&(frame)->uc.uc_sigmask, \
329 struct sigframe __user *frame; in __setup_frame() local
333 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fp); in __setup_frame()
335 if (!user_access_begin(frame, sizeof(*frame))) in __setup_frame()
338 unsafe_put_user(sig, &frame->sig, Efault); in __setup_frame()
339 unsafe_put_sigcontext(&frame->sc, fp, regs, set, Efault); in __setup_frame()
340 unsafe_put_user(set->sig[1], &frame->extramask[0], Efault); in __setup_frame()
345 restorer = &frame->retcode; in __setup_frame()
350 unsafe_put_user(restorer, &frame->pretcode, Efault); in __setup_frame()
359 unsafe_put_user(*((u64 *)&retcode), (u64 *)frame->retcode, Efault); in __setup_frame()
363 regs->sp = (unsigned long)frame; in __setup_frame()
384 struct rt_sigframe __user *frame; in __setup_rt_frame() local
388 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fp); in __setup_rt_frame()
390 if (!user_access_begin(frame, sizeof(*frame))) in __setup_rt_frame()
393 unsafe_put_user(sig, &frame->sig, Efault); in __setup_rt_frame()
394 unsafe_put_user(&frame->info, &frame->pinfo, Efault); in __setup_rt_frame()
395 unsafe_put_user(&frame->uc, &frame->puc, Efault); in __setup_rt_frame()
399 unsafe_put_user(UC_FP_XSTATE, &frame->uc.uc_flags, Efault); in __setup_rt_frame()
401 unsafe_put_user(0, &frame->uc.uc_flags, Efault); in __setup_rt_frame()
402 unsafe_put_user(0, &frame->uc.uc_link, Efault); in __setup_rt_frame()
403 unsafe_save_altstack(&frame->uc.uc_stack, regs->sp, Efault); in __setup_rt_frame()
410 unsafe_put_user(restorer, &frame->pretcode, Efault); in __setup_rt_frame()
419 unsafe_put_user(*((u64 *)&rt_retcode), (u64 *)frame->retcode, Efault); in __setup_rt_frame()
420 unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault); in __setup_rt_frame()
421 unsafe_put_sigmask(set, frame, Efault); in __setup_rt_frame()
424 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
428 regs->sp = (unsigned long)frame; in __setup_rt_frame()
431 regs->dx = (unsigned long)&frame->info; in __setup_rt_frame()
432 regs->cx = (unsigned long)&frame->uc; in __setup_rt_frame()
463 struct rt_sigframe __user *frame; in __setup_rt_frame() local
471 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); in __setup_rt_frame()
474 if (!user_access_begin(frame, sizeof(*frame))) in __setup_rt_frame()
478 unsafe_put_user(uc_flags, &frame->uc.uc_flags, Efault); in __setup_rt_frame()
479 unsafe_put_user(0, &frame->uc.uc_link, Efault); in __setup_rt_frame()
480 unsafe_save_altstack(&frame->uc.uc_stack, regs->sp, Efault); in __setup_rt_frame()
484 unsafe_put_user(ksig->ka.sa.sa_restorer, &frame->pretcode, Efault); in __setup_rt_frame()
485 unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault); in __setup_rt_frame()
486 unsafe_put_sigmask(set, frame, Efault); in __setup_rt_frame()
490 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
501 regs->si = (unsigned long)&frame->info; in __setup_rt_frame()
502 regs->dx = (unsigned long)&frame->uc; in __setup_rt_frame()
505 regs->sp = (unsigned long)frame; in __setup_rt_frame()
567 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local
575 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fp); in x32_setup_rt_frame()
579 if (!user_access_begin(frame, sizeof(*frame))) in x32_setup_rt_frame()
583 unsafe_put_user(uc_flags, &frame->uc.uc_flags, Efault); in x32_setup_rt_frame()
584 unsafe_put_user(0, &frame->uc.uc_link, Efault); in x32_setup_rt_frame()
585 unsafe_compat_save_altstack(&frame->uc.uc_stack, regs->sp, Efault); in x32_setup_rt_frame()
586 unsafe_put_user(0, &frame->uc.uc__pad0, Efault); in x32_setup_rt_frame()
588 unsafe_put_user(restorer, (unsigned long __user *)&frame->pretcode, Efault); in x32_setup_rt_frame()
589 unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault); in x32_setup_rt_frame()
590 unsafe_put_sigmask(set, frame, Efault); in x32_setup_rt_frame()
594 if (x32_copy_siginfo_to_user(&frame->info, &ksig->info)) in x32_setup_rt_frame()
599 regs->sp = (unsigned long) frame; in x32_setup_rt_frame()
604 regs->si = (unsigned long) &frame->info; in x32_setup_rt_frame()
605 regs->dx = (unsigned long) &frame->uc; in x32_setup_rt_frame()
629 struct sigframe __user *frame; in SYSCALL_DEFINE0() local
632 frame = (struct sigframe __user *)(regs->sp - 8); in SYSCALL_DEFINE0()
634 if (!access_ok(frame, sizeof(*frame))) in SYSCALL_DEFINE0()
636 if (__get_user(set.sig[0], &frame->sc.oldmask) || in SYSCALL_DEFINE0()
637 __get_user(set.sig[1], &frame->extramask[0])) in SYSCALL_DEFINE0()
646 if (restore_sigcontext(regs, &frame->sc, 0)) in SYSCALL_DEFINE0()
651 signal_fault(regs, frame, "sigreturn"); in SYSCALL_DEFINE0()
660 struct rt_sigframe __user *frame; in SYSCALL_DEFINE0() local
664 frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long)); in SYSCALL_DEFINE0()
665 if (!access_ok(frame, sizeof(*frame))) in SYSCALL_DEFINE0()
667 if (__get_user(*(__u64 *)&set, (__u64 __user *)&frame->uc.uc_sigmask)) in SYSCALL_DEFINE0()
669 if (__get_user(uc_flags, &frame->uc.uc_flags)) in SYSCALL_DEFINE0()
674 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in SYSCALL_DEFINE0()
677 if (restore_altstack(&frame->uc.uc_stack)) in SYSCALL_DEFINE0()
683 signal_fault(regs, frame, "rt_sigreturn"); in SYSCALL_DEFINE0()
898 void signal_fault(struct pt_regs *regs, void __user *frame, char *where) in signal_fault() argument
906 me->comm, me->pid, where, frame, in signal_fault()
919 struct rt_sigframe_x32 __user *frame; in COMPAT_SYSCALL_DEFINE0() local
923 frame = (struct rt_sigframe_x32 __user *)(regs->sp - 8); in COMPAT_SYSCALL_DEFINE0()
925 if (!access_ok(frame, sizeof(*frame))) in COMPAT_SYSCALL_DEFINE0()
927 if (__get_user(set.sig[0], (__u64 __user *)&frame->uc.uc_sigmask)) in COMPAT_SYSCALL_DEFINE0()
929 if (__get_user(uc_flags, &frame->uc.uc_flags)) in COMPAT_SYSCALL_DEFINE0()
934 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in COMPAT_SYSCALL_DEFINE0()
937 if (compat_restore_altstack(&frame->uc.uc_stack)) in COMPAT_SYSCALL_DEFINE0()
943 signal_fault(regs, frame, "x32 rt_sigreturn"); in COMPAT_SYSCALL_DEFINE0()