| Message ID | a7a31b89-2a25-41a6-9a24-529fc97cf94d@BAMAIL02.ba.imgtec.org |
|---|---|
| State | Accepted, archived |
| Headers | show |
On Feb 12, 2014, at 10:09 AM, Steve Ellcey <sellcey@mips.com> 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 <sellcey@mips.com> > --- > 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.
On Wed, Feb 12, 2014 at 10:14:13AM -0800, Khem Raj wrote: > > On Feb 12, 2014, at 10:09 AM, Steve Ellcey <sellcey@mips.com> 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 <sellcey@mips.com> > > --- > > 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. Applied. Thanks,
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); # else
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 <sellcey@mips.com> --- libc/sysdeps/linux/common/sync_file_range.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)