Lines Matching refs:err

191 	int err;  in preserve_fpsimd_context()  local
194 err = __copy_to_user(ctx->vregs, fpsimd->vregs, sizeof(fpsimd->vregs)); in preserve_fpsimd_context()
195 __put_user_error(fpsimd->fpsr, &ctx->fpsr, err); in preserve_fpsimd_context()
196 __put_user_error(fpsimd->fpcr, &ctx->fpcr, err); in preserve_fpsimd_context()
199 __put_user_error(FPSIMD_MAGIC, &ctx->head.magic, err); in preserve_fpsimd_context()
200 __put_user_error(sizeof(struct fpsimd_context), &ctx->head.size, err); in preserve_fpsimd_context()
202 return err ? -EFAULT : 0; in preserve_fpsimd_context()
208 int err = 0; in restore_fpsimd_context() local
215 err = __copy_from_user(fpsimd.vregs, &(user->fpsimd->vregs), in restore_fpsimd_context()
217 __get_user_error(fpsimd.fpsr, &(user->fpsimd->fpsr), err); in restore_fpsimd_context()
218 __get_user_error(fpsimd.fpcr, &(user->fpsimd->fpcr), err); in restore_fpsimd_context()
224 if (!err) in restore_fpsimd_context()
227 return err ? -EFAULT : 0; in restore_fpsimd_context()
235 int err = 0; in preserve_sve_context() local
251 __put_user_error(SVE_MAGIC, &ctx->head.magic, err); in preserve_sve_context()
253 &ctx->head.size, err); in preserve_sve_context()
254 __put_user_error(vl, &ctx->vl, err); in preserve_sve_context()
255 __put_user_error(flags, &ctx->flags, err); in preserve_sve_context()
257 err |= __copy_to_user(&ctx->__reserved, reserved, sizeof(reserved)); in preserve_sve_context()
265 err |= __copy_to_user((char __user *)ctx + SVE_SIG_REGS_OFFSET, in preserve_sve_context()
270 return err ? -EFAULT : 0; in preserve_sve_context()
275 int err = 0; in restore_sve_fpsimd_context() local
283 __get_user_error(user_vl, &(user->sve->vl), err); in restore_sve_fpsimd_context()
284 __get_user_error(flags, &(user->sve->flags), err); in restore_sve_fpsimd_context()
285 if (err) in restore_sve_fpsimd_context()
286 return err; in restore_sve_fpsimd_context()
336 err = __copy_from_user(current->thread.sve_state, in restore_sve_fpsimd_context()
340 if (err) in restore_sve_fpsimd_context()
352 err = __copy_from_user(fpsimd.vregs, user->fpsimd->vregs, in restore_sve_fpsimd_context()
354 __get_user_error(fpsimd.fpsr, &user->fpsimd->fpsr, err); in restore_sve_fpsimd_context()
355 __get_user_error(fpsimd.fpcr, &user->fpsimd->fpcr, err); in restore_sve_fpsimd_context()
358 if (!err) in restore_sve_fpsimd_context()
361 return err ? -EFAULT : 0; in restore_sve_fpsimd_context()
381 int err = 0; in preserve_tpidr2_context() local
385 __put_user_error(TPIDR2_MAGIC, &ctx->head.magic, err); in preserve_tpidr2_context()
386 __put_user_error(sizeof(*ctx), &ctx->head.size, err); in preserve_tpidr2_context()
387 __put_user_error(current->thread.tpidr2_el0, &ctx->tpidr2, err); in preserve_tpidr2_context()
389 return err; in preserve_tpidr2_context()
395 int err = 0; in restore_tpidr2_context() local
400 __get_user_error(tpidr2_el0, &user->tpidr2->tpidr2, err); in restore_tpidr2_context()
401 if (!err) in restore_tpidr2_context()
404 return err; in restore_tpidr2_context()
409 int err = 0; in preserve_za_context() local
421 __put_user_error(ZA_MAGIC, &ctx->head.magic, err); in preserve_za_context()
423 &ctx->head.size, err); in preserve_za_context()
424 __put_user_error(vl, &ctx->vl, err); in preserve_za_context()
426 err |= __copy_to_user(&ctx->__reserved, reserved, sizeof(reserved)); in preserve_za_context()
434 err |= __copy_to_user((char __user *)ctx + ZA_SIG_REGS_OFFSET, in preserve_za_context()
439 return err ? -EFAULT : 0; in preserve_za_context()
444 int err = 0; in restore_za_context() local
451 __get_user_error(user_vl, &(user->za->vl), err); in restore_za_context()
452 if (err) in restore_za_context()
453 return err; in restore_za_context()
485 err = __copy_from_user(current->thread.sme_state, in restore_za_context()
489 if (err) in restore_za_context()
500 int err = 0; in preserve_zt_context() local
508 __put_user_error(ZT_MAGIC, &ctx->head.magic, err); in preserve_zt_context()
510 &ctx->head.size, err); in preserve_zt_context()
511 __put_user_error(1, &ctx->nregs, err); in preserve_zt_context()
513 err |= __copy_to_user(&ctx->__reserved, reserved, sizeof(reserved)); in preserve_zt_context()
520 err |= __copy_to_user((char __user *)ctx + ZT_SIG_REGS_OFFSET, in preserve_zt_context()
524 return err ? -EFAULT : 0; in preserve_zt_context()
529 int err; in restore_zt_context() local
555 err = __copy_from_user(thread_zt_state(&current->thread), in restore_zt_context()
559 if (err) in restore_zt_context()
598 int err = 0; in parse_user_sigframe() local
614 __get_user_error(magic, &head->magic, err); in parse_user_sigframe()
615 __get_user_error(size, &head->size, err); in parse_user_sigframe()
616 if (err) in parse_user_sigframe()
617 return err; in parse_user_sigframe()
699 __get_user_error(extra_datap, &extra->datap, err); in parse_user_sigframe()
700 __get_user_error(extra_size, &extra->size, err); in parse_user_sigframe()
701 if (err) in parse_user_sigframe()
702 return err; in parse_user_sigframe()
712 __get_user_error(end_magic, &end->magic, err); in parse_user_sigframe()
713 __get_user_error(end_size, &end->size, err); in parse_user_sigframe()
714 if (err) in parse_user_sigframe()
715 return err; in parse_user_sigframe()
773 int i, err; in restore_sigframe() local
776 err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set)); in restore_sigframe()
777 if (err == 0) in restore_sigframe()
782 err); in restore_sigframe()
783 __get_user_error(regs->sp, &sf->uc.uc_mcontext.sp, err); in restore_sigframe()
784 __get_user_error(regs->pc, &sf->uc.uc_mcontext.pc, err); in restore_sigframe()
785 __get_user_error(regs->pstate, &sf->uc.uc_mcontext.pstate, err); in restore_sigframe()
792 err |= !valid_user_regs(&regs->user_regs, current); in restore_sigframe()
793 if (err == 0) in restore_sigframe()
794 err = parse_user_sigframe(&user, sf); in restore_sigframe()
796 if (err == 0 && system_supports_fpsimd()) { in restore_sigframe()
801 err = restore_sve_fpsimd_context(&user); in restore_sigframe()
803 err = restore_fpsimd_context(&user); in restore_sigframe()
806 if (err == 0 && system_supports_tpidr2() && user.tpidr2) in restore_sigframe()
807 err = restore_tpidr2_context(&user); in restore_sigframe()
809 if (err == 0 && system_supports_sme() && user.za) in restore_sigframe()
810 err = restore_za_context(&user); in restore_sigframe()
812 if (err == 0 && system_supports_sme2() && user.zt) in restore_sigframe()
813 err = restore_zt_context(&user); in restore_sigframe()
815 return err; in restore_sigframe()
861 int err; in setup_sigframe_layout() local
864 err = sigframe_alloc(user, &user->fpsimd_offset, in setup_sigframe_layout()
866 if (err) in setup_sigframe_layout()
867 return err; in setup_sigframe_layout()
872 err = sigframe_alloc(user, &user->esr_offset, in setup_sigframe_layout()
874 if (err) in setup_sigframe_layout()
875 return err; in setup_sigframe_layout()
891 err = sigframe_alloc(user, &user->sve_offset, in setup_sigframe_layout()
893 if (err) in setup_sigframe_layout()
894 return err; in setup_sigframe_layout()
898 err = sigframe_alloc(user, &user->tpidr2_offset, in setup_sigframe_layout()
900 if (err) in setup_sigframe_layout()
901 return err; in setup_sigframe_layout()
916 err = sigframe_alloc(user, &user->za_offset, in setup_sigframe_layout()
918 if (err) in setup_sigframe_layout()
919 return err; in setup_sigframe_layout()
924 err = sigframe_alloc(user, &user->zt_offset, in setup_sigframe_layout()
926 if (err) in setup_sigframe_layout()
927 return err; in setup_sigframe_layout()
937 int i, err = 0; in setup_sigframe() local
941 __put_user_error(regs->regs[29], &user->next_frame->fp, err); in setup_sigframe()
942 __put_user_error(regs->regs[30], &user->next_frame->lr, err); in setup_sigframe()
946 err); in setup_sigframe()
947 __put_user_error(regs->sp, &sf->uc.uc_mcontext.sp, err); in setup_sigframe()
948 __put_user_error(regs->pc, &sf->uc.uc_mcontext.pc, err); in setup_sigframe()
949 __put_user_error(regs->pstate, &sf->uc.uc_mcontext.pstate, err); in setup_sigframe()
951 __put_user_error(current->thread.fault_address, &sf->uc.uc_mcontext.fault_address, err); in setup_sigframe()
953 err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(*set)); in setup_sigframe()
955 if (err == 0 && system_supports_fpsimd()) { in setup_sigframe()
958 err |= preserve_fpsimd_context(fpsimd_ctx); in setup_sigframe()
962 if (err == 0 && user->esr_offset) { in setup_sigframe()
966 __put_user_error(ESR_MAGIC, &esr_ctx->head.magic, err); in setup_sigframe()
967 __put_user_error(sizeof(*esr_ctx), &esr_ctx->head.size, err); in setup_sigframe()
968 __put_user_error(current->thread.fault_code, &esr_ctx->esr, err); in setup_sigframe()
973 err == 0 && user->sve_offset) { in setup_sigframe()
976 err |= preserve_sve_context(sve_ctx); in setup_sigframe()
980 if (system_supports_tpidr2() && err == 0) { in setup_sigframe()
983 err |= preserve_tpidr2_context(tpidr2_ctx); in setup_sigframe()
987 if (system_supports_sme() && err == 0 && user->za_offset) { in setup_sigframe()
990 err |= preserve_za_context(za_ctx); in setup_sigframe()
994 if (system_supports_sme2() && err == 0 && user->zt_offset) { in setup_sigframe()
997 err |= preserve_zt_context(zt_ctx); in setup_sigframe()
1000 if (err == 0 && user->extra_offset) { in setup_sigframe()
1024 __put_user_error(EXTRA_MAGIC, &extra->head.magic, err); in setup_sigframe()
1025 __put_user_error(EXTRA_CONTEXT_SIZE, &extra->head.size, err); in setup_sigframe()
1026 __put_user_error(extra_datap, &extra->datap, err); in setup_sigframe()
1027 __put_user_error(extra_size, &extra->size, err); in setup_sigframe()
1030 __put_user_error(0, &end->magic, err); in setup_sigframe()
1031 __put_user_error(0, &end->size, err); in setup_sigframe()
1035 if (err == 0) { in setup_sigframe()
1039 __put_user_error(0, &end->magic, err); in setup_sigframe()
1040 __put_user_error(0, &end->size, err); in setup_sigframe()
1043 return err; in setup_sigframe()
1050 int err; in get_sigframe() local
1053 err = setup_sigframe_layout(user, false); in get_sigframe()
1054 if (err) in get_sigframe()
1055 return err; in get_sigframe()
1135 int err = 0; in setup_rt_frame() local
1144 __put_user_error(0, &frame->uc.uc_flags, err); in setup_rt_frame()
1145 __put_user_error(NULL, &frame->uc.uc_link, err); in setup_rt_frame()
1147 err |= __save_altstack(&frame->uc.uc_stack, regs->sp); in setup_rt_frame()
1148 err |= setup_sigframe(&user, regs, set); in setup_rt_frame()
1149 if (err == 0) { in setup_rt_frame()
1152 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
1158 return err; in setup_rt_frame()