• Home
  • Raw
  • Download

Lines Matching refs:frame

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()
361 regs->sp = (unsigned long)frame; in __setup_frame()
378 struct rt_sigframe __user *frame; in __setup_rt_frame() local
383 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame()
385 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
389 put_user_ex(sig, &frame->sig); in __setup_rt_frame()
390 put_user_ex(&frame->info, &frame->pinfo); in __setup_rt_frame()
391 put_user_ex(&frame->uc, &frame->puc); in __setup_rt_frame()
395 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
397 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
398 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
399 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
406 put_user_ex(restorer, &frame->pretcode); in __setup_rt_frame()
415 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode); in __setup_rt_frame()
418 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in __setup_rt_frame()
419 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in __setup_rt_frame()
421 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
427 regs->sp = (unsigned long)frame; in __setup_rt_frame()
430 regs->dx = (unsigned long)&frame->info; in __setup_rt_frame()
431 regs->cx = (unsigned long)&frame->uc; in __setup_rt_frame()
459 struct rt_sigframe __user *frame; in __setup_rt_frame() local
463 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); in __setup_rt_frame()
465 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
469 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
475 put_user_ex(frame_uc_flags(regs), &frame->uc.uc_flags); in __setup_rt_frame()
476 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
477 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
483 put_user_ex(ksig->ka.sa.sa_restorer, &frame->pretcode); in __setup_rt_frame()
490 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); in __setup_rt_frame()
491 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
503 regs->si = (unsigned long)&frame->info; in __setup_rt_frame()
504 regs->dx = (unsigned long)&frame->uc; in __setup_rt_frame()
507 regs->sp = (unsigned long)frame; in __setup_rt_frame()
540 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local
545 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in x32_setup_rt_frame()
547 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in x32_setup_rt_frame()
551 if (__copy_siginfo_to_user32(&frame->info, &ksig->info, true)) in x32_setup_rt_frame()
557 put_user_ex(frame_uc_flags(regs), &frame->uc.uc_flags); in x32_setup_rt_frame()
558 put_user_ex(0, &frame->uc.uc_link); in x32_setup_rt_frame()
559 compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); in x32_setup_rt_frame()
560 put_user_ex(0, &frame->uc.uc__pad0); in x32_setup_rt_frame()
569 put_user_ex(restorer, &frame->pretcode); in x32_setup_rt_frame()
572 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in x32_setup_rt_frame()
574 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in x32_setup_rt_frame()
580 regs->sp = (unsigned long) frame; in x32_setup_rt_frame()
585 regs->si = (unsigned long) &frame->info; in x32_setup_rt_frame()
586 regs->dx = (unsigned long) &frame->uc; in x32_setup_rt_frame()
605 struct sigframe __user *frame; in sys_sigreturn() local
608 frame = (struct sigframe __user *)(regs->sp - 8); in sys_sigreturn()
610 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn()
612 if (__get_user(set.sig[0], &frame->sc.oldmask) || (_NSIG_WORDS > 1 in sys_sigreturn()
613 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn()
614 sizeof(frame->extramask)))) in sys_sigreturn()
623 if (restore_sigcontext(regs, &frame->sc, 0)) in sys_sigreturn()
628 signal_fault(regs, frame, "sigreturn"); in sys_sigreturn()
637 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local
641 frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long)); in sys_rt_sigreturn()
642 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn()
644 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn()
646 if (__get_user(uc_flags, &frame->uc.uc_flags)) in sys_rt_sigreturn()
651 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in sys_rt_sigreturn()
654 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn()
660 signal_fault(regs, frame, "rt_sigreturn"); in sys_rt_sigreturn()
838 void signal_fault(struct pt_regs *regs, void __user *frame, char *where) in signal_fault() argument
846 me->comm, me->pid, where, frame, in signal_fault()
859 struct rt_sigframe_x32 __user *frame; in sys32_x32_rt_sigreturn() local
863 frame = (struct rt_sigframe_x32 __user *)(regs->sp - 8); in sys32_x32_rt_sigreturn()
865 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_x32_rt_sigreturn()
867 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys32_x32_rt_sigreturn()
869 if (__get_user(uc_flags, &frame->uc.uc_flags)) in sys32_x32_rt_sigreturn()
874 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, uc_flags)) in sys32_x32_rt_sigreturn()
877 if (compat_restore_altstack(&frame->uc.uc_stack)) in sys32_x32_rt_sigreturn()
883 signal_fault(regs, frame, "x32 rt_sigreturn"); in sys32_x32_rt_sigreturn()