On 7/23/20 1:13 AM, Michael Karcher wrote:
> Other architectures expect that syscall_set_return_value gets an already
> negative value as error. That's also what kernel/seccomp.c provides.
> 
> Signed-off-by: Michael Karcher <ker...@mkarcher.dialup.fu-berlin.de>
> ---
>  arch/sh/include/asm/syscall_32.h | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/arch/sh/include/asm/syscall_32.h 
> b/arch/sh/include/asm/syscall_32.h
> index 0b5b8e75edac..cb51a7528384 100644
> --- a/arch/sh/include/asm/syscall_32.h
> +++ b/arch/sh/include/asm/syscall_32.h
> @@ -40,10 +40,7 @@ static inline void syscall_set_return_value(struct 
> task_struct *task,
>                                           struct pt_regs *regs,
>                                           int error, long val)
>  {
> -     if (error)
> -             regs->regs[0] = -error;
> -     else
> -             regs->regs[0] = val;
> +     regs->regs[0] = (long) error ?: val;
>  }
>  
>  static inline void syscall_get_arguments(struct task_struct *task,
> 

Tested-by: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de>

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

Reply via email to