aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2014-02-26 06:51:40 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-04 03:05:36 -0500
commit52a0b536a3addcfe20325303b2dddc2538019476 (patch)
tree73d226fa33dbb217e1053d45870cd699c3aeacbf /arch
parente723e0cc17f8d8573b19a809277d81cecdd6e92b (diff)
s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 5
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/kernel/compat_linux.c25
-rw-r--r--arch/s390/kernel/compat_linux.h12
-rw-r--r--arch/s390/kernel/compat_wrapper.S34
-rw-r--r--arch/s390/kernel/syscalls.S10
4 files changed, 21 insertions, 60 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 79571343bc75..08b20c2539da 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -304,33 +304,30 @@ COMPAT_SYSCALL_DEFINE3(s390_truncate64, const char __user *, path, u32, high, u3
304 return sys_truncate(path, (unsigned long)high << 32 | low); 304 return sys_truncate(path, (unsigned long)high << 32 | low);
305} 305}
306 306
307asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low) 307COMPAT_SYSCALL_DEFINE3(s390_ftruncate64, unsigned int, fd, u32, high, u32, low)
308{ 308{
309 if ((int)high < 0) 309 return sys_ftruncate(fd, (unsigned long)high << 32 | low);
310 return -EINVAL;
311 else
312 return sys_ftruncate(fd, (high << 32) | low);
313} 310}
314 311
315asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf, 312COMPAT_SYSCALL_DEFINE5(s390_pread64, unsigned int, fd, char __user *, ubuf,
316 size_t count, u32 poshi, u32 poslo) 313 compat_size_t, count, u32, high, u32, low)
317{ 314{
318 if ((compat_ssize_t) count < 0) 315 if ((compat_ssize_t) count < 0)
319 return -EINVAL; 316 return -EINVAL;
320 return sys_pread64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo)); 317 return sys_pread64(fd, ubuf, count, (unsigned long)high << 32 | low);
321} 318}
322 319
323asmlinkage long sys32_pwrite64(unsigned int fd, const char __user *ubuf, 320COMPAT_SYSCALL_DEFINE5(s390_pwrite64, unsigned int, fd, const char __user *, ubuf,
324 size_t count, u32 poshi, u32 poslo) 321 compat_size_t, count, u32, high, u32, low)
325{ 322{
326 if ((compat_ssize_t) count < 0) 323 if ((compat_ssize_t) count < 0)
327 return -EINVAL; 324 return -EINVAL;
328 return sys_pwrite64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo)); 325 return sys_pwrite64(fd, ubuf, count, (unsigned long)high << 32 | low);
329} 326}
330 327
331asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count) 328COMPAT_SYSCALL_DEFINE4(s390_readahead, int, fd, u32, high, u32, low, s32, count)
332{ 329{
333 return sys_readahead(fd, ((loff_t)AA(offhi) << 32) | AA(offlo), count); 330 return sys_readahead(fd, (unsigned long)high << 32 | low, count);
334} 331}
335 332
336struct stat64_emu31 { 333struct stat64_emu31 {
@@ -382,7 +379,7 @@ static int cp_stat64(struct stat64_emu31 __user *ubuf, struct kstat *stat)
382 return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; 379 return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
383} 380}
384 381
385asmlinkage long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf) 382COMPAT_SYSCALL_DEFINE2(s390_stat64, const char __user *, filename, struct stat64_emu31 __user *, statbuf)
386{ 383{
387 struct kstat stat; 384 struct kstat stat;
388 int ret = vfs_stat(filename, &stat); 385 int ret = vfs_stat(filename, &stat);
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h
index 3e03325d0e95..df5f715ed6be 100644
--- a/arch/s390/kernel/compat_linux.h
+++ b/arch/s390/kernel/compat_linux.h
@@ -96,16 +96,14 @@ long compat_sys_s390_geteuid16(void);
96long compat_sys_s390_getgid16(void); 96long compat_sys_s390_getgid16(void);
97long compat_sys_s390_getegid16(void); 97long compat_sys_s390_getegid16(void);
98long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low); 98long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low);
99long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low); 99long compat_sys_s390_ftruncate64(unsigned int fd, u32 high, u32 low);
100long sys32_init_module(void __user *umod, unsigned long len, 100long sys32_init_module(void __user *umod, unsigned long len,
101 const char __user *uargs); 101 const char __user *uargs);
102long sys32_delete_module(const char __user *name_user, unsigned int flags); 102long sys32_delete_module(const char __user *name_user, unsigned int flags);
103long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count, 103long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low);
104 u32 poshi, u32 poslo); 104long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low);
105long sys32_pwrite64(unsigned int fd, const char __user *ubuf, 105long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count);
106 size_t count, u32 poshi, u32 poslo); 106long compat_sys_s390_stat64(const char __user *filename, struct stat64_emu31 __user *statbuf);
107compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count);
108long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf);
109long sys32_lstat64(const char __user * filename, 107long sys32_lstat64(const char __user * filename,
110 struct stat64_emu31 __user * statbuf); 108 struct stat64_emu31 __user * statbuf);
111long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf); 109long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf);
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 9128f7b87e80..399255de7d48 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -536,22 +536,6 @@ ENTRY(sys32_prctl_wrapper)
536 536
537#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue 537#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
538 538
539ENTRY(sys32_pread64_wrapper)
540 llgfr %r2,%r2 # unsigned int
541 llgtr %r3,%r3 # char *
542 llgfr %r4,%r4 # size_t
543 llgfr %r5,%r5 # u32
544 llgfr %r6,%r6 # u32
545 jg sys32_pread64 # branch to system call
546
547ENTRY(sys32_pwrite64_wrapper)
548 llgfr %r2,%r2 # unsigned int
549 llgtr %r3,%r3 # const char *
550 llgfr %r4,%r4 # size_t
551 llgfr %r5,%r5 # u32
552 llgfr %r6,%r6 # u32
553 jg sys32_pwrite64 # branch to system call
554
555ENTRY(sys32_getcwd_wrapper) 539ENTRY(sys32_getcwd_wrapper)
556 llgtr %r2,%r2 # char * 540 llgtr %r2,%r2 # char *
557 llgfr %r3,%r3 # unsigned long 541 llgfr %r3,%r3 # unsigned long
@@ -569,12 +553,6 @@ ENTRY(sys32_capset_wrapper)
569 553
570#sys32_vfork_wrapper # done in vfork_glue 554#sys32_vfork_wrapper # done in vfork_glue
571 555
572ENTRY(sys32_ftruncate64_wrapper)
573 llgfr %r2,%r2 # unsigned int
574 llgfr %r3,%r3 # unsigned long
575 llgfr %r4,%r4 # unsigned long
576 jg sys32_ftruncate64 # branch to system call
577
578ENTRY(sys32_lchown_wrapper) 556ENTRY(sys32_lchown_wrapper)
579 llgtr %r2,%r2 # const char * 557 llgtr %r2,%r2 # const char *
580 llgfr %r3,%r3 # uid_t 558 llgfr %r3,%r3 # uid_t
@@ -687,11 +665,6 @@ ENTRY(compat_sys_fcntl64_wrapper)
687 llgfr %r4,%r4 # unsigned long 665 llgfr %r4,%r4 # unsigned long
688 jg compat_sys_fcntl64 # branch to system call 666 jg compat_sys_fcntl64 # branch to system call
689 667
690ENTRY(sys32_stat64_wrapper)
691 llgtr %r2,%r2 # char *
692 llgtr %r3,%r3 # struct stat64 *
693 jg sys32_stat64 # branch to system call
694
695ENTRY(sys32_lstat64_wrapper) 668ENTRY(sys32_lstat64_wrapper)
696 llgtr %r2,%r2 # char * 669 llgtr %r2,%r2 # char *
697 llgtr %r3,%r3 # struct stat64 * 670 llgtr %r3,%r3 # struct stat64 *
@@ -1201,13 +1174,6 @@ ENTRY(sys_epoll_create1_wrapper)
1201 lgfr %r2,%r2 # int 1174 lgfr %r2,%r2 # int
1202 jg sys_epoll_create1 # branch to system call 1175 jg sys_epoll_create1 # branch to system call
1203 1176
1204ENTRY(sys32_readahead_wrapper)
1205 lgfr %r2,%r2 # int
1206 llgfr %r3,%r3 # u32
1207 llgfr %r4,%r4 # u32
1208 lgfr %r5,%r5 # s32
1209 jg sys32_readahead # branch to system call
1210
1211ENTRY(sys_tkill_wrapper) 1177ENTRY(sys_tkill_wrapper)
1212 lgfr %r2,%r2 # pid_t 1178 lgfr %r2,%r2 # pid_t
1213 lgfr %r3,%r3 # int 1179 lgfr %r3,%r3 # int
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index fa17cefe40e2..8b07ce3ffdf7 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -188,8 +188,8 @@ SYSCALL(sys_rt_sigpending,sys_rt_sigpending,compat_sys_rt_sigpending)
188SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait) 188SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait)
189SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo) 189SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo)
190SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend) 190SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend)
191SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper) /* 180 */ 191SYSCALL(sys_pread64,sys_pread64,compat_sys_s390_pread64) /* 180 */
192SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper) 192SYSCALL(sys_pwrite64,sys_pwrite64,compat_sys_s390_pwrite64)
193SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */ 193SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */
194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) 194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) 195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
@@ -202,8 +202,8 @@ SYSCALL(sys_vfork,sys_vfork,sys_vfork) /* 190 */
202SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper) 202SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper)
203SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper) 203SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper)
204SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64) 204SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64)
205SYSCALL(sys_ftruncate64,sys_ni_syscall,sys32_ftruncate64_wrapper) 205SYSCALL(sys_ftruncate64,sys_ni_syscall,compat_sys_s390_ftruncate64)
206SYSCALL(sys_stat64,sys_ni_syscall,sys32_stat64_wrapper) /* 195 */ 206SYSCALL(sys_stat64,sys_ni_syscall,compat_sys_s390_stat64) /* 195 */
207SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper) 207SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper)
208SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper) 208SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper)
209SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper) 209SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper)
@@ -230,7 +230,7 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) 230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ 231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */
232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) 232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
233SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper) 233SYSCALL(sys_readahead,sys_readahead,compat_sys_s390_readahead)
234SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64) 234SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64)
235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) 235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ 236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */