diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-24 02:17:03 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-03-03 22:58:46 -0500 |
commit | 19f4fc3aee180000fe45952691bbe69dde1d9e95 (patch) | |
tree | 195578ae347797f6aeb66f237aeea7e0eae9847c /arch/s390/kernel | |
parent | 7d197ed4a68e76000070979563051e08bf6fc0aa (diff) |
convert sendfile{,64} to COMPAT_SYSCALL_DEFINE
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 42 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 4 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 14 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 4 |
4 files changed, 2 insertions, 62 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 19f26de27fae..fbd29c70a297 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -373,48 +373,6 @@ asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 coun | |||
373 | return sys_readahead(fd, ((loff_t)AA(offhi) << 32) | AA(offlo), count); | 373 | return sys_readahead(fd, ((loff_t)AA(offhi) << 32) | AA(offlo), count); |
374 | } | 374 | } |
375 | 375 | ||
376 | asmlinkage long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, size_t count) | ||
377 | { | ||
378 | mm_segment_t old_fs = get_fs(); | ||
379 | int ret; | ||
380 | off_t of; | ||
381 | |||
382 | if (offset && get_user(of, offset)) | ||
383 | return -EFAULT; | ||
384 | |||
385 | set_fs(KERNEL_DS); | ||
386 | ret = sys_sendfile(out_fd, in_fd, | ||
387 | offset ? (off_t __force __user *) &of : NULL, count); | ||
388 | set_fs(old_fs); | ||
389 | |||
390 | if (offset && put_user(of, offset)) | ||
391 | return -EFAULT; | ||
392 | |||
393 | return ret; | ||
394 | } | ||
395 | |||
396 | asmlinkage long sys32_sendfile64(int out_fd, int in_fd, | ||
397 | compat_loff_t __user *offset, s32 count) | ||
398 | { | ||
399 | mm_segment_t old_fs = get_fs(); | ||
400 | int ret; | ||
401 | loff_t lof; | ||
402 | |||
403 | if (offset && get_user(lof, offset)) | ||
404 | return -EFAULT; | ||
405 | |||
406 | set_fs(KERNEL_DS); | ||
407 | ret = sys_sendfile64(out_fd, in_fd, | ||
408 | offset ? (loff_t __force __user *) &lof : NULL, | ||
409 | count); | ||
410 | set_fs(old_fs); | ||
411 | |||
412 | if (offset && put_user(lof, offset)) | ||
413 | return -EFAULT; | ||
414 | |||
415 | return ret; | ||
416 | } | ||
417 | |||
418 | struct stat64_emu31 { | 376 | struct stat64_emu31 { |
419 | unsigned long long st_dev; | 377 | unsigned long long st_dev; |
420 | unsigned int __pad1; | 378 | unsigned int __pad1; |
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index 00d92a5a6f6c..bce0b7aec8f9 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
@@ -106,10 +106,6 @@ long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count, | |||
106 | long sys32_pwrite64(unsigned int fd, const char __user *ubuf, | 106 | long sys32_pwrite64(unsigned int fd, const char __user *ubuf, |
107 | size_t count, u32 poshi, u32 poslo); | 107 | size_t count, u32 poshi, u32 poslo); |
108 | compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count); | 108 | compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count); |
109 | long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, | ||
110 | size_t count); | ||
111 | long sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, | ||
112 | s32 count); | ||
113 | long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf); | 109 | long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf); |
114 | long sys32_lstat64(const char __user * filename, | 110 | long sys32_lstat64(const char __user * filename, |
115 | struct stat64_emu31 __user * statbuf); | 111 | struct stat64_emu31 __user * statbuf); |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 626cc6f0f446..a1dda9c67efe 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -666,13 +666,6 @@ ENTRY(sys32_capset_wrapper) | |||
666 | llgtr %r3,%r3 # const cap_user_data_t | 666 | llgtr %r3,%r3 # const cap_user_data_t |
667 | jg sys_capset # branch to system call | 667 | jg sys_capset # branch to system call |
668 | 668 | ||
669 | ENTRY(sys32_sendfile_wrapper) | ||
670 | lgfr %r2,%r2 # int | ||
671 | lgfr %r3,%r3 # int | ||
672 | llgtr %r4,%r4 # __kernel_off_emu31_t * | ||
673 | llgfr %r5,%r5 # size_t | ||
674 | jg sys32_sendfile # branch to system call | ||
675 | |||
676 | #sys32_vfork_wrapper # done in vfork_glue | 669 | #sys32_vfork_wrapper # done in vfork_glue |
677 | 670 | ||
678 | ENTRY(sys32_truncate64_wrapper) | 671 | ENTRY(sys32_truncate64_wrapper) |
@@ -1348,13 +1341,6 @@ ENTRY(sys32_readahead_wrapper) | |||
1348 | lgfr %r5,%r5 # s32 | 1341 | lgfr %r5,%r5 # s32 |
1349 | jg sys32_readahead # branch to system call | 1342 | jg sys32_readahead # branch to system call |
1350 | 1343 | ||
1351 | ENTRY(sys32_sendfile64_wrapper) | ||
1352 | lgfr %r2,%r2 # int | ||
1353 | lgfr %r3,%r3 # int | ||
1354 | llgtr %r4,%r4 # compat_loff_t * | ||
1355 | lgfr %r5,%r5 # s32 | ||
1356 | jg sys32_sendfile64 # branch to system call | ||
1357 | |||
1358 | ENTRY(sys_tkill_wrapper) | 1344 | ENTRY(sys_tkill_wrapper) |
1359 | lgfr %r2,%r2 # pid_t | 1345 | lgfr %r2,%r2 # pid_t |
1360 | lgfr %r3,%r3 # int | 1346 | lgfr %r3,%r3 # int |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 2695bb89699e..5f3f7fbc5465 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -195,7 +195,7 @@ 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) |
196 | SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ | 196 | SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ |
197 | SYSCALL(sys_sigaltstack,sys_sigaltstack,compat_sys_sigaltstack) | 197 | SYSCALL(sys_sigaltstack,sys_sigaltstack,compat_sys_sigaltstack) |
198 | SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper) | 198 | SYSCALL(sys_sendfile,sys_sendfile64,compat_sys_sendfile) |
199 | NI_SYSCALL /* streams1 */ | 199 | NI_SYSCALL /* streams1 */ |
200 | NI_SYSCALL /* streams2 */ | 200 | NI_SYSCALL /* streams2 */ |
201 | SYSCALL(sys_vfork,sys_vfork,sys_vfork) /* 190 */ | 201 | SYSCALL(sys_vfork,sys_vfork,sys_vfork) /* 190 */ |
@@ -231,7 +231,7 @@ 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,sys32_readahead_wrapper) |
234 | SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64_wrapper) | 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 */ |
237 | SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper) | 237 | SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper) |