diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-02-26 06:51:40 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-04 03:05:36 -0500 |
commit | 52a0b536a3addcfe20325303b2dddc2538019476 (patch) | |
tree | 73d226fa33dbb217e1053d45870cd699c3aeacbf /arch | |
parent | e723e0cc17f8d8573b19a809277d81cecdd6e92b (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.c | 25 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 12 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 34 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 10 |
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 | ||
307 | asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low) | 307 | COMPAT_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 | ||
315 | asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf, | 312 | COMPAT_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 | ||
323 | asmlinkage long sys32_pwrite64(unsigned int fd, const char __user *ubuf, | 320 | COMPAT_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 | ||
331 | asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count) | 328 | COMPAT_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 | ||
336 | struct stat64_emu31 { | 333 | struct 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 | ||
385 | asmlinkage long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf) | 382 | COMPAT_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); | |||
96 | long compat_sys_s390_getgid16(void); | 96 | long compat_sys_s390_getgid16(void); |
97 | long compat_sys_s390_getegid16(void); | 97 | long compat_sys_s390_getegid16(void); |
98 | long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low); | 98 | long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low); |
99 | long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low); | 99 | long compat_sys_s390_ftruncate64(unsigned int fd, u32 high, u32 low); |
100 | long sys32_init_module(void __user *umod, unsigned long len, | 100 | long sys32_init_module(void __user *umod, unsigned long len, |
101 | const char __user *uargs); | 101 | const char __user *uargs); |
102 | long sys32_delete_module(const char __user *name_user, unsigned int flags); | 102 | long sys32_delete_module(const char __user *name_user, unsigned int flags); |
103 | long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count, | 103 | long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low); |
104 | u32 poshi, u32 poslo); | 104 | long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low); |
105 | long sys32_pwrite64(unsigned int fd, const char __user *ubuf, | 105 | long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count); |
106 | size_t count, u32 poshi, u32 poslo); | 106 | long compat_sys_s390_stat64(const char __user *filename, struct stat64_emu31 __user *statbuf); |
107 | compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count); | ||
108 | long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf); | ||
109 | long sys32_lstat64(const char __user * filename, | 107 | long sys32_lstat64(const char __user * filename, |
110 | struct stat64_emu31 __user * statbuf); | 108 | struct stat64_emu31 __user * statbuf); |
111 | long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf); | 109 | long 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 | ||
539 | ENTRY(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 | |||
547 | ENTRY(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 | |||
555 | ENTRY(sys32_getcwd_wrapper) | 539 | ENTRY(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 | ||
572 | ENTRY(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 | |||
578 | ENTRY(sys32_lchown_wrapper) | 556 | ENTRY(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 | ||
690 | ENTRY(sys32_stat64_wrapper) | ||
691 | llgtr %r2,%r2 # char * | ||
692 | llgtr %r3,%r3 # struct stat64 * | ||
693 | jg sys32_stat64 # branch to system call | ||
694 | |||
695 | ENTRY(sys32_lstat64_wrapper) | 668 | ENTRY(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 | ||
1204 | ENTRY(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 | |||
1211 | ENTRY(sys_tkill_wrapper) | 1177 | ENTRY(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) | |||
188 | SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait) | 188 | SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait) |
189 | SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo) | 189 | SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo) |
190 | SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend) | 190 | SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend) |
191 | SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper) /* 180 */ | 191 | SYSCALL(sys_pread64,sys_pread64,compat_sys_s390_pread64) /* 180 */ |
192 | SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper) | 192 | SYSCALL(sys_pwrite64,sys_pwrite64,compat_sys_s390_pwrite64) |
193 | SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */ | 193 | SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16) /* old chown16 syscall */ |
194 | SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) | 194 | SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) |
195 | SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) | 195 | SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) |
@@ -202,8 +202,8 @@ SYSCALL(sys_vfork,sys_vfork,sys_vfork) /* 190 */ | |||
202 | SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper) | 202 | SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper) |
203 | SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper) | 203 | SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper) |
204 | SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64) | 204 | SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64) |
205 | SYSCALL(sys_ftruncate64,sys_ni_syscall,sys32_ftruncate64_wrapper) | 205 | SYSCALL(sys_ftruncate64,sys_ni_syscall,compat_sys_s390_ftruncate64) |
206 | SYSCALL(sys_stat64,sys_ni_syscall,sys32_stat64_wrapper) /* 195 */ | 206 | SYSCALL(sys_stat64,sys_ni_syscall,compat_sys_s390_stat64) /* 195 */ |
207 | SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper) | 207 | SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper) |
208 | SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper) | 208 | SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper) |
209 | SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper) | 209 | SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper) |
@@ -230,7 +230,7 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper) | |||
230 | SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) | 230 | SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) |
231 | SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ | 231 | SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ |
232 | SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) | 232 | SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) |
233 | SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper) | 233 | SYSCALL(sys_readahead,sys_readahead,compat_sys_s390_readahead) |
234 | SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64) | 234 | SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64) |
235 | SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) | 235 | SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) |
236 | SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ | 236 | SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ |