On 19/02/2020 18:40, Vineet Gupta wrote: > On 2/10/20 11:20 AM, Adhemerval Zanella wrote: >> It changes the nios INTERNAL_SYSCALL_RAW macro to return a negative >> value instead of 'r2' register value on 'err' macro argument. >> >> The macro INTERNAL_SYSCALL_DECL is no longer required, and the >> INTERNAL_SYSCALL_ERROR_P follows the other Linux kABIS. >> >> Checked with a build against nios2-linux-gnu. >> --- >> sysdeps/unix/sysv/linux/nios2/sysdep.h | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h >> index b02730bd23..eab888df32 100644 >> --- a/sysdeps/unix/sysv/linux/nios2/sysdep.h >> +++ b/sysdeps/unix/sysv/linux/nios2/sysdep.h >> @@ -157,13 +157,14 @@ >> (int) result_var; }) >> >> #undef INTERNAL_SYSCALL_DECL >> -#define INTERNAL_SYSCALL_DECL(err) unsigned int err __attribute__((unused)) >> +#define INTERNAL_SYSCALL_DECL(err) do { } while (0) >> >> #undef INTERNAL_SYSCALL_ERROR_P >> -#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (unsigned int) (err)) >> +#define INTERNAL_SYSCALL_ERROR_P(val, err) \ >> + ((unsigned long) (val) >= (unsigned long) -4095) >> >> #undef INTERNAL_SYSCALL_ERRNO >> -#define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val) >> +#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) >> >> #undef INTERNAL_SYSCALL_RAW >> #define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ >> @@ -180,8 +181,7 @@ >> : "+r" (_r2), "=r" (_err) \ >> : ASM_ARGS_##nr \ >> : __SYSCALL_CLOBBERS); \ >> - _sys_result = _r2; \ >> - err = _err; \ >> + _sys_result = _err != 0 ? -_r2 : -_r2; \ > > Is there a typo here ? both cases seem to be -ve It is, thanks for catching it. I have pushed b790c8c2ed to fix and double checked nios2 syscall handling (arch/nios2/kernel/entry.S:205) to certify that the modification does follow nios2 kABI. _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc