On Feb 12, 2014, at 10:09 AM, Steve Ellcey <[email protected]> wrote:

> The special sync_file_range handling is only needed for the O32 ABI
> (regardless of whether it is on mips32 or mips64).  The N32 (and N64)
> ABI's should both use the standard code.  This routine was using the
> special code for the N32 ABI because that ABI has a word size of 32 bits
> and that is wrong.  This patch fixes it by checking the ABI used instead
> of checking the word size.
> 
> Signed-off-by: Steve Ellcey <[email protected]>
> ---
> libc/sysdeps/linux/common/sync_file_range.c |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libc/sysdeps/linux/common/sync_file_range.c 
> b/libc/sysdeps/linux/common/sync_file_range.c
> index 66751c6..8d4ed92 100644
> --- a/libc/sysdeps/linux/common/sync_file_range.c
> +++ b/libc/sysdeps/linux/common/sync_file_range.c
> @@ -24,7 +24,7 @@ static int __NC(sync_file_range)(int fd, off64_t offset, 
> off64_t nbytes, unsigne
> {
> #  if defined __powerpc__ && __WORDSIZE == 64
>       return INLINE_SYSCALL(sync_file_range, 4, fd, offset, nbytes, flags);
> -#  elif defined __mips__ && __WORDSIZE == 32
> +#  elif defined __mips__ && _MIPS_SIM == _ABIO32
>       return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
>                       OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);

This looks good to me.


_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to