Lines Matching refs:frame

277 	struct sigframe __user *frame;  in __setup_frame()  local
282 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame()
284 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_frame()
287 if (__put_user(sig, &frame->sig)) in __setup_frame()
290 if (setup_sigcontext(&frame->sc, fpstate, regs, set->sig[0])) in __setup_frame()
294 if (__copy_to_user(&frame->extramask, &set->sig[1], in __setup_frame()
295 sizeof(frame->extramask))) in __setup_frame()
303 restorer = &frame->retcode; in __setup_frame()
308 err |= __put_user(restorer, &frame->pretcode); in __setup_frame()
317 err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode); in __setup_frame()
323 regs->sp = (unsigned long)frame; in __setup_frame()
340 struct rt_sigframe __user *frame; in __setup_rt_frame() local
345 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame()
347 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
351 put_user_ex(sig, &frame->sig); in __setup_rt_frame()
352 put_user_ex(&frame->info, &frame->pinfo); in __setup_rt_frame()
353 put_user_ex(&frame->uc, &frame->puc); in __setup_rt_frame()
357 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
359 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
360 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
361 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
368 put_user_ex(restorer, &frame->pretcode); in __setup_rt_frame()
377 put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode); in __setup_rt_frame()
380 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in __setup_rt_frame()
381 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in __setup_rt_frame()
383 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
389 regs->sp = (unsigned long)frame; in __setup_rt_frame()
392 regs->dx = (unsigned long)&frame->info; in __setup_rt_frame()
393 regs->cx = (unsigned long)&frame->uc; in __setup_rt_frame()
406 struct rt_sigframe __user *frame; in __setup_rt_frame() local
410 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); in __setup_rt_frame()
412 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in __setup_rt_frame()
416 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame()
423 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in __setup_rt_frame()
425 put_user_ex(0, &frame->uc.uc_flags); in __setup_rt_frame()
426 put_user_ex(0, &frame->uc.uc_link); in __setup_rt_frame()
427 save_altstack_ex(&frame->uc.uc_stack, regs->sp); in __setup_rt_frame()
433 put_user_ex(ksig->ka.sa.sa_restorer, &frame->pretcode); in __setup_rt_frame()
440 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]); in __setup_rt_frame()
441 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in __setup_rt_frame()
453 regs->si = (unsigned long)&frame->info; in __setup_rt_frame()
454 regs->dx = (unsigned long)&frame->uc; in __setup_rt_frame()
457 regs->sp = (unsigned long)frame; in __setup_rt_frame()
472 struct rt_sigframe_x32 __user *frame; in x32_setup_rt_frame() local
477 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in x32_setup_rt_frame()
479 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) in x32_setup_rt_frame()
483 if (copy_siginfo_to_user32(&frame->info, &ksig->info)) in x32_setup_rt_frame()
490 put_user_ex(UC_FP_XSTATE, &frame->uc.uc_flags); in x32_setup_rt_frame()
492 put_user_ex(0, &frame->uc.uc_flags); in x32_setup_rt_frame()
493 put_user_ex(0, &frame->uc.uc_link); in x32_setup_rt_frame()
494 compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); in x32_setup_rt_frame()
495 put_user_ex(0, &frame->uc.uc__pad0); in x32_setup_rt_frame()
504 put_user_ex(restorer, &frame->pretcode); in x32_setup_rt_frame()
507 err |= setup_sigcontext(&frame->uc.uc_mcontext, fpstate, in x32_setup_rt_frame()
509 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); in x32_setup_rt_frame()
515 regs->sp = (unsigned long) frame; in x32_setup_rt_frame()
520 regs->si = (unsigned long) &frame->info; in x32_setup_rt_frame()
521 regs->dx = (unsigned long) &frame->uc; in x32_setup_rt_frame()
540 struct sigframe __user *frame; in sys_sigreturn() local
543 frame = (struct sigframe __user *)(regs->sp - 8); in sys_sigreturn()
545 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_sigreturn()
547 if (__get_user(set.sig[0], &frame->sc.oldmask) || (_NSIG_WORDS > 1 in sys_sigreturn()
548 && __copy_from_user(&set.sig[1], &frame->extramask, in sys_sigreturn()
549 sizeof(frame->extramask)))) in sys_sigreturn()
554 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn()
559 signal_fault(regs, frame, "sigreturn"); in sys_sigreturn()
568 struct rt_sigframe __user *frame; in sys_rt_sigreturn() local
571 frame = (struct rt_sigframe __user *)(regs->sp - sizeof(long)); in sys_rt_sigreturn()
572 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys_rt_sigreturn()
574 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys_rt_sigreturn()
579 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys_rt_sigreturn()
582 if (restore_altstack(&frame->uc.uc_stack)) in sys_rt_sigreturn()
588 signal_fault(regs, frame, "rt_sigreturn"); in sys_rt_sigreturn()
746 void signal_fault(struct pt_regs *regs, void __user *frame, char *where) in signal_fault() argument
754 me->comm, me->pid, where, frame, in signal_fault()
767 struct rt_sigframe_x32 __user *frame; in sys32_x32_rt_sigreturn() local
770 frame = (struct rt_sigframe_x32 __user *)(regs->sp - 8); in sys32_x32_rt_sigreturn()
772 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) in sys32_x32_rt_sigreturn()
774 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) in sys32_x32_rt_sigreturn()
779 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys32_x32_rt_sigreturn()
782 if (compat_restore_altstack(&frame->uc.uc_stack)) in sys32_x32_rt_sigreturn()
788 signal_fault(regs, frame, "x32 rt_sigreturn"); in sys32_x32_rt_sigreturn()