Lines Matching refs:frame
280 struct sigframe __user *frame; in __setup_frame() local
285 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame()
287 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_frame()
290 if (__put_user(sig, &frame->sig)) in __setup_frame()
293 if (setup_sigcontext(&frame->sc, fpstate, regs, set->sig[0])) in __setup_frame()
297 if (__copy_to_user(&frame->extramask, &set->sig[1], in __setup_frame()
298 sizeof(frame->extramask))) in __setup_frame()
306 restorer = &frame->retcode; in __setup_frame()
311 err |= __put_user(restorer, &frame->pretcode); in __setup_frame()
320 err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode); in __setup_frame()
326 regs->sp = (unsigned long)frame; in __setup_frame()
343 struct rt_sigframe __user *frame; in __setup_rt_frame() local
348 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame()
350 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
354 put_user_ex(sig, &frame->sig); in __setup_rt_frame()
355 put_user_ex(&frame->info, &frame->pinfo); in __setup_rt_frame()
356 put_user_ex(&frame->uc, &frame->puc); in __setup_rt_frame()
360 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
362 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
363 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
364 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
371 put_user_ex(restorer, &frame->pretcode); in __setup_rt_frame()
380 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode); in __setup_rt_frame()
383 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in __setup_rt_frame()
384 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in __setup_rt_frame()
386 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
392 regs->sp = (unsigned long)frame; in __setup_rt_frame()
395 regs->dx = (unsigned long)&frame->info; in __setup_rt_frame()
396 regs->cx = (unsigned long)&frame->uc; in __setup_rt_frame()
409 struct rt_sigframe __user *frame; in __setup_rt_frame() local
413 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); in __setup_rt_frame()
415 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
419 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
426 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
428 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
429 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
430 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
436 put_user_ex(ksig->ka.sa.sa_restorer, &frame->pretcode); in __setup_rt_frame()
443 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); in __setup_rt_frame()
444 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
456 regs->si = (unsigned long)&frame->info; in __setup_rt_frame()
457 regs->dx = (unsigned long)&frame->uc; in __setup_rt_frame()
460 regs->sp = (unsigned long)frame; in __setup_rt_frame()
475 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local
480 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in x32_setup_rt_frame()
482 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in x32_setup_rt_frame()
486 if (copy_siginfo_to_user32(&frame->info, &ksig->info)) in x32_setup_rt_frame()
493 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in x32_setup_rt_frame()
495 put_user_ex(0, &frame->uc.uc_flags); in x32_setup_rt_frame()
496 put_user_ex(0, &frame->uc.uc_link); in x32_setup_rt_frame()
497 compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); in x32_setup_rt_frame()
498 put_user_ex(0, &frame->uc.uc__pad0); in x32_setup_rt_frame()
507 put_user_ex(restorer, &frame->pretcode); in x32_setup_rt_frame()
510 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in x32_setup_rt_frame()
512 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in x32_setup_rt_frame()
518 regs->sp = (unsigned long) frame; in x32_setup_rt_frame()
523 regs->si = (unsigned long) &frame->info; in x32_setup_rt_frame()
524 regs->dx = (unsigned long) &frame->uc; in x32_setup_rt_frame()
543 struct sigframe __user *frame; in sys_sigreturn() local
546 frame = (struct sigframe __user *)(regs->sp - 8); in sys_sigreturn()
548 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn()
550 if (__get_user(set.sig[0], &frame->sc.oldmask) || (_NSIG_WORDS > 1 in sys_sigreturn()
551 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn()
552 sizeof(frame->extramask)))) in sys_sigreturn()
557 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn()
562 signal_fault(regs, frame, "sigreturn"); in sys_sigreturn()
571 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local
574 frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long)); in sys_rt_sigreturn()
575 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn()
577 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn()
582 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys_rt_sigreturn()
585 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn()
591 signal_fault(regs, frame, "rt_sigreturn"); in sys_rt_sigreturn()
743 void signal_fault(struct pt_regs *regs, void __user *frame, char *where) in signal_fault() argument
751 me->comm, me->pid, where, frame, in signal_fault()
764 struct rt_sigframe_x32 __user *frame; in sys32_x32_rt_sigreturn() local
767 frame = (struct rt_sigframe_x32 __user *)(regs->sp - 8); in sys32_x32_rt_sigreturn()
769 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_x32_rt_sigreturn()
771 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys32_x32_rt_sigreturn()
776 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys32_x32_rt_sigreturn()
779 if (compat_restore_altstack(&frame->uc.uc_stack)) in sys32_x32_rt_sigreturn()
785 signal_fault(regs, frame, "x32 rt_sigreturn"); in sys32_x32_rt_sigreturn()