Lines Matching refs:frame

318 	struct sigframe __user *frame;  in __setup_frame()  local
323 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame()
325 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_frame()
328 if (__put_user(sig, &frame->sig)) in __setup_frame()
331 if (setup_sigcontext(&frame->sc, fpstate, regs, set->sig[0])) in __setup_frame()
335 if (__copy_to_user(&frame->extramask, &set->sig[1], in __setup_frame()
336 sizeof(frame->extramask))) in __setup_frame()
344 restorer = &frame->retcode; in __setup_frame()
349 err |= __put_user(restorer, &frame->pretcode); in __setup_frame()
358 err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode); in __setup_frame()
364 regs->sp = (unsigned long)frame; in __setup_frame()
381 struct rt_sigframe __user *frame; in __setup_rt_frame() local
386 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame()
388 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
392 put_user_ex(sig, &frame->sig); in __setup_rt_frame()
393 put_user_ex(&frame->info, &frame->pinfo); in __setup_rt_frame()
394 put_user_ex(&frame->uc, &frame->puc); in __setup_rt_frame()
398 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
400 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
401 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
402 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
409 put_user_ex(restorer, &frame->pretcode); in __setup_rt_frame()
418 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode); in __setup_rt_frame()
421 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in __setup_rt_frame()
422 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in __setup_rt_frame()
424 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
430 regs->sp = (unsigned long)frame; in __setup_rt_frame()
433 regs->dx = (unsigned long)&frame->info; in __setup_rt_frame()
434 regs->cx = (unsigned long)&frame->uc; in __setup_rt_frame()
462 struct rt_sigframe __user *frame; in __setup_rt_frame() local
466 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); in __setup_rt_frame()
468 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
472 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
478 put_user_ex(frame_uc_flags(regs), &frame->uc.uc_flags); in __setup_rt_frame()
479 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
480 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
486 put_user_ex(ksig->ka.sa.sa_restorer, &frame->pretcode); in __setup_rt_frame()
493 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); in __setup_rt_frame()
494 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
506 regs->si = (unsigned long)&frame->info; in __setup_rt_frame()
507 regs->dx = (unsigned long)&frame->uc; in __setup_rt_frame()
510 regs->sp = (unsigned long)frame; in __setup_rt_frame()
543 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local
548 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in x32_setup_rt_frame()
550 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in x32_setup_rt_frame()
554 if (__copy_siginfo_to_user32(&frame->info, &ksig->info, true)) in x32_setup_rt_frame()
560 put_user_ex(frame_uc_flags(regs), &frame->uc.uc_flags); in x32_setup_rt_frame()
561 put_user_ex(0, &frame->uc.uc_link); in x32_setup_rt_frame()
562 compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); in x32_setup_rt_frame()
563 put_user_ex(0, &frame->uc.uc__pad0); in x32_setup_rt_frame()
572 put_user_ex(restorer, &frame->pretcode); in x32_setup_rt_frame()
575 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in x32_setup_rt_frame()
577 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in x32_setup_rt_frame()
583 regs->sp = (unsigned long) frame; in x32_setup_rt_frame()
588 regs->si = (unsigned long) &frame->info; in x32_setup_rt_frame()
589 regs->dx = (unsigned long) &frame->uc; in x32_setup_rt_frame()
608 struct sigframe __user *frame; in SYSCALL_DEFINE0() local
611 frame = (struct sigframe __user *)(regs->sp - 8); in SYSCALL_DEFINE0()
613 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in SYSCALL_DEFINE0()
615 if (__get_user(set.sig[0], &frame->sc.oldmask) || (_NSIG_WORDS > 1 in SYSCALL_DEFINE0()
616 && __copy_from_user(&set.sig[1], &frame->extramask, in SYSCALL_DEFINE0()
617 sizeof(frame->extramask)))) in SYSCALL_DEFINE0()
626 if (restore_sigcontext(regs, &frame->sc, 0)) in SYSCALL_DEFINE0()
631 signal_fault(regs, frame, "sigreturn"); in SYSCALL_DEFINE0()
640 struct rt_sigframe __user *frame; in SYSCALL_DEFINE0() local
644 frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long)); in SYSCALL_DEFINE0()
645 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in SYSCALL_DEFINE0()
647 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in SYSCALL_DEFINE0()
649 if (__get_user(uc_flags, &frame->uc.uc_flags)) in SYSCALL_DEFINE0()
654 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in SYSCALL_DEFINE0()
657 if (restore_altstack(&frame->uc.uc_stack)) in SYSCALL_DEFINE0()
663 signal_fault(regs, frame, "rt_sigreturn"); in SYSCALL_DEFINE0()
847 void signal_fault(struct pt_regs *regs, void __user *frame, char *where) in signal_fault() argument
855 me->comm, me->pid, where, frame, in signal_fault()
868 struct rt_sigframe_x32 __user *frame; in sys32_x32_rt_sigreturn() local
872 frame = (struct rt_sigframe_x32 __user *)(regs->sp - 8); in sys32_x32_rt_sigreturn()
874 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_x32_rt_sigreturn()
876 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys32_x32_rt_sigreturn()
878 if (__get_user(uc_flags, &frame->uc.uc_flags)) in sys32_x32_rt_sigreturn()
883 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in sys32_x32_rt_sigreturn()
886 if (compat_restore_altstack(&frame->uc.uc_stack)) in sys32_x32_rt_sigreturn()
892 signal_fault(regs, frame, "x32 rt_sigreturn"); in sys32_x32_rt_sigreturn()