signal/sparc64_set_context: remove __get_user checks
Remove checks of __get_user and the err variable used to control flow with it. Signed-off-by: Riku Voipio <riku.voipio@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
c650c008e3
commit
be3ef5c7fa
|
@ -2527,7 +2527,6 @@ void sparc64_set_context(CPUSPARCState *env)
|
||||||
target_mc_gregset_t *grp;
|
target_mc_gregset_t *grp;
|
||||||
abi_ulong pc, npc, tstate;
|
abi_ulong pc, npc, tstate;
|
||||||
abi_ulong fp, i7, w_addr;
|
abi_ulong fp, i7, w_addr;
|
||||||
int err = 0;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
ucp_addr = env->regwptr[UREG_I0];
|
ucp_addr = env->regwptr[UREG_I0];
|
||||||
|
@ -2536,15 +2535,14 @@ void sparc64_set_context(CPUSPARCState *env)
|
||||||
grp = &ucp->tuc_mcontext.mc_gregs;
|
grp = &ucp->tuc_mcontext.mc_gregs;
|
||||||
__get_user(pc, &((*grp)[MC_PC]));
|
__get_user(pc, &((*grp)[MC_PC]));
|
||||||
__get_user(npc, &((*grp)[MC_NPC]));
|
__get_user(npc, &((*grp)[MC_NPC]));
|
||||||
if (err || ((pc | npc) & 3))
|
if ((pc | npc) & 3)
|
||||||
goto do_sigsegv;
|
goto do_sigsegv;
|
||||||
if (env->regwptr[UREG_I1]) {
|
if (env->regwptr[UREG_I1]) {
|
||||||
target_sigset_t target_set;
|
target_sigset_t target_set;
|
||||||
sigset_t set;
|
sigset_t set;
|
||||||
|
|
||||||
if (TARGET_NSIG_WORDS == 1) {
|
if (TARGET_NSIG_WORDS == 1) {
|
||||||
if (__get_user(target_set.sig[0], &ucp->tuc_sigmask.sig[0]))
|
__get_user(target_set.sig[0], &ucp->tuc_sigmask.sig[0]);
|
||||||
goto do_sigsegv;
|
|
||||||
} else {
|
} else {
|
||||||
abi_ulong *src, *dst;
|
abi_ulong *src, *dst;
|
||||||
src = ucp->tuc_sigmask.sig;
|
src = ucp->tuc_sigmask.sig;
|
||||||
|
@ -2552,8 +2550,6 @@ void sparc64_set_context(CPUSPARCState *env)
|
||||||
for (i = 0; i < TARGET_NSIG_WORDS; i++, dst++, src++) {
|
for (i = 0; i < TARGET_NSIG_WORDS; i++, dst++, src++) {
|
||||||
__get_user(*dst, src);
|
__get_user(*dst, src);
|
||||||
}
|
}
|
||||||
if (err)
|
|
||||||
goto do_sigsegv;
|
|
||||||
}
|
}
|
||||||
target_to_host_sigset_internal(&set, &target_set);
|
target_to_host_sigset_internal(&set, &target_set);
|
||||||
do_sigprocmask(SIG_SETMASK, &set, NULL);
|
do_sigprocmask(SIG_SETMASK, &set, NULL);
|
||||||
|
@ -2596,7 +2592,7 @@ void sparc64_set_context(CPUSPARCState *env)
|
||||||
* is only restored if fenab is non-zero in:
|
* is only restored if fenab is non-zero in:
|
||||||
* __get_user(fenab, &(ucp->tuc_mcontext.mc_fpregs.mcfpu_enab));
|
* __get_user(fenab, &(ucp->tuc_mcontext.mc_fpregs.mcfpu_enab));
|
||||||
*/
|
*/
|
||||||
err |= __get_user(env->fprs, &(ucp->tuc_mcontext.mc_fpregs.mcfpu_fprs));
|
__get_user(env->fprs, &(ucp->tuc_mcontext.mc_fpregs.mcfpu_fprs));
|
||||||
{
|
{
|
||||||
uint32_t *src = ucp->tuc_mcontext.mc_fpregs.mcfpu_fregs.sregs;
|
uint32_t *src = ucp->tuc_mcontext.mc_fpregs.mcfpu_fregs.sregs;
|
||||||
for (i = 0; i < 64; i++, src++) {
|
for (i = 0; i < 64; i++, src++) {
|
||||||
|
@ -2611,8 +2607,6 @@ void sparc64_set_context(CPUSPARCState *env)
|
||||||
&(ucp->tuc_mcontext.mc_fpregs.mcfpu_fsr));
|
&(ucp->tuc_mcontext.mc_fpregs.mcfpu_fsr));
|
||||||
__get_user(env->gsr,
|
__get_user(env->gsr,
|
||||||
&(ucp->tuc_mcontext.mc_fpregs.mcfpu_gsr));
|
&(ucp->tuc_mcontext.mc_fpregs.mcfpu_gsr));
|
||||||
if (err)
|
|
||||||
goto do_sigsegv;
|
|
||||||
unlock_user_struct(ucp, ucp_addr, 0);
|
unlock_user_struct(ucp, ucp_addr, 0);
|
||||||
return;
|
return;
|
||||||
do_sigsegv:
|
do_sigsegv:
|
||||||
|
|
Loading…
Reference in New Issue