diff options
Diffstat (limited to 'arch/arc/kernel/signal.c')
| -rw-r--r-- | arch/arc/kernel/signal.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arc/kernel/signal.c b/arch/arc/kernel/signal.c index 6cb3736b6b83..d347bbc086fe 100644 --- a/arch/arc/kernel/signal.c +++ b/arch/arc/kernel/signal.c @@ -107,13 +107,13 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)  	struct user_regs_struct uregs;  	err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set)); -	if (!err) -		set_current_blocked(&set); -  	err |= __copy_from_user(&uregs.scratch,  				&(sf->uc.uc_mcontext.regs.scratch),  				sizeof(sf->uc.uc_mcontext.regs.scratch)); +	if (err) +		return err; +	set_current_blocked(&set);  	regs->bta	= uregs.scratch.bta;  	regs->lp_start	= uregs.scratch.lp_start;  	regs->lp_end	= uregs.scratch.lp_end; @@ -138,7 +138,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)  	regs->r0	= uregs.scratch.r0;  	regs->sp	= uregs.scratch.sp; -	return err; +	return 0;  }  static inline int is_do_ss_needed(unsigned int magic)  |