Skip to content

Commit

Permalink
[XTENSA] Fix fadvise64_64
Browse files Browse the repository at this point in the history
Xtensa passes long long arguments in a even/odd register pair,
so we also need to shuffle the arguments when passed through the
system call to avoid an empty argument register.

Signed-off-by: Chris Zankel <chris@zankel.net>
  • Loading branch information
Chris Zankel committed Aug 27, 2007
1 parent 068732d commit bc671aa
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
5 changes: 5 additions & 0 deletions arch/xtensa/kernel/syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,8 @@ asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
return (long)ret;
}

asmlinkage long xtensa_fadvise64_64(int fd, int advice, unsigned long long offset, unsigned long long len)
{
return sys_fadvise64_64(fd, offset, len, advice);
}

2 changes: 2 additions & 0 deletions include/asm-xtensa/syscall.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ asmlinkage long sys_rt_sigaction(int,
struct sigaction __user *,
size_t);
asmlinkage long xtensa_shmat(int, char __user *, int);
asmlinkage long xtensa_fadvise64_64(int, int,
unsigned long long, unsigned long long);

/* Should probably move to linux/syscalls.h */
struct pollfd;
Expand Down
2 changes: 1 addition & 1 deletion include/asm-xtensa/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ __SYSCALL( 61, sys_fcntl64, 3)
#define __NR_available62 62
__SYSCALL( 62, sys_ni_syscall, 0)
#define __NR_fadvise64_64 63
__SYSCALL( 63, sys_fadvise64_64, 6)
__SYSCALL( 63, xtensa_fadvise64_64, 6)
#define __NR_utime 64 /* glibc 2.3.3 ?? */
__SYSCALL( 64, sys_utime, 2)
#define __NR_utimes 65
Expand Down

0 comments on commit bc671aa

Please sign in to comment.