aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2018-03-19 23:48:30 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2018-03-20 12:05:16 -0400
commit8c82ccd63192a3ed66a454fdd70da2a4cc8455a1 (patch)
tree398f815a292ad17992cb83e28b232f879171ced6
parent8ccb004677d15ebfd44470e27bc9a399b0e71e4e (diff)
sparc: switch compat pread64 and pwrite64 to COMPAT_SYSCALL_DEFINE
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--arch/sparc/kernel/sys_sparc32.c18
-rw-r--r--arch/sparc/kernel/systbls.h12
-rw-r--r--arch/sparc/kernel/systbls_64.S2
3 files changed, 13 insertions, 19 deletions
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c
index b266797fee99..50e9e4fdd8c6 100644
--- a/arch/sparc/kernel/sys_sparc32.c
+++ b/arch/sparc/kernel/sys_sparc32.c
@@ -194,22 +194,16 @@ COMPAT_SYSCALL_DEFINE5(rt_sigaction, int, sig,
194 return ret; 194 return ret;
195} 195}
196 196
197asmlinkage compat_ssize_t sys32_pread64(unsigned int fd, 197COMPAT_SYSCALL_DEFINE5(pread64, unsigned int, fd, char __user *, ubuf,
198 char __user *ubuf, 198 compat_size_t, count, u32, poshi, u32, poslo)
199 compat_size_t count,
200 unsigned long poshi,
201 unsigned long poslo)
202{ 199{
203 return sys_pread64(fd, ubuf, count, (poshi << 32) | poslo); 200 return sys_pread64(fd, ubuf, count, ((u64)poshi << 32) | poslo);
204} 201}
205 202
206asmlinkage compat_ssize_t sys32_pwrite64(unsigned int fd, 203COMPAT_SYSCALL_DEFINE5(pwrite64, unsigned int, fd, char __user *, ubuf,
207 char __user *ubuf, 204 compat_size_t, count, u32, poshi, u32, poslo)
208 compat_size_t count,
209 unsigned long poshi,
210 unsigned long poslo)
211{ 205{
212 return sys_pwrite64(fd, ubuf, count, (poshi << 32) | poslo); 206 return sys_pwrite64(fd, ubuf, count, ((u64)poshi << 32) | poslo);
213} 207}
214 208
215COMPAT_SYSCALL_DEFINE4(readahead, int, fd, u32, offhi, u32, offlo, 209COMPAT_SYSCALL_DEFINE4(readahead, int, fd, u32, offhi, u32, offlo,
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h
index 0ff3da78e09b..922c253ee086 100644
--- a/arch/sparc/kernel/systbls.h
+++ b/arch/sparc/kernel/systbls.h
@@ -65,16 +65,16 @@ asmlinkage long compat_sys_fstat64(unsigned int fd,
65asmlinkage long compat_sys_fstatat64(unsigned int dfd, 65asmlinkage long compat_sys_fstatat64(unsigned int dfd,
66 const char __user *filename, 66 const char __user *filename,
67 struct compat_stat64 __user * statbuf, int flag); 67 struct compat_stat64 __user * statbuf, int flag);
68asmlinkage compat_ssize_t sys32_pread64(unsigned int fd, 68asmlinkage long compat_sys_pread64(unsigned int fd,
69 char __user *ubuf, 69 char __user *ubuf,
70 compat_size_t count, 70 compat_size_t count,
71 unsigned long poshi, 71 u32 poshi,
72 unsigned long poslo); 72 u32 poslo);
73asmlinkage compat_ssize_t sys32_pwrite64(unsigned int fd, 73asmlinkage long compat_sys_pwrite64(unsigned int fd,
74 char __user *ubuf, 74 char __user *ubuf,
75 compat_size_t count, 75 compat_size_t count,
76 unsigned long poshi, 76 u32 poshi,
77 unsigned long poslo); 77 u32 poslo);
78asmlinkage long compat_sys_readahead(int fd, 78asmlinkage long compat_sys_readahead(int fd,
79 unsigned offhi, 79 unsigned offhi,
80 unsigned offlo, 80 unsigned offlo,
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
index 9d10daa5a121..34dde99548b0 100644
--- a/arch/sparc/kernel/systbls_64.S
+++ b/arch/sparc/kernel/systbls_64.S
@@ -32,7 +32,7 @@ sys_call_table32:
32/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl 32/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
33 .word sys_reboot, sys32_mmap2, sys_symlink, sys_readlink, sys32_execve 33 .word sys_reboot, sys32_mmap2, sys_symlink, sys_readlink, sys32_execve
34/*60*/ .word sys_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize 34/*60*/ .word sys_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize
35 .word sys_msync, sys_vfork, sys32_pread64, sys32_pwrite64, sys_geteuid 35 .word sys_msync, sys_vfork, compat_sys_pread64, compat_sys_pwrite64, sys_geteuid
36/*70*/ .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect 36/*70*/ .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
37 .word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys_getgroups16 37 .word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys_getgroups16
38/*80*/ .word sys_setgroups16, sys_getpgrp, sys_setgroups, compat_sys_setitimer, sys32_ftruncate64 38/*80*/ .word sys_setgroups16, sys_getpgrp, sys_setgroups, compat_sys_setitimer, sys32_ftruncate64