diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-02-26 08:40:43 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-04 03:05:38 -0500 |
commit | 5383d2c8b3ee61a762043818d7c07bbc0049b031 (patch) | |
tree | 00684571c741f1ba6c750386401dbb590130c768 | |
parent | a0f8c6da8f3da63283e978ebece03e81d107b1d0 (diff) |
s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 7
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 12 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 11 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 24 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 8 |
4 files changed, 13 insertions, 42 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 861427fc0329..59097741f509 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -454,7 +454,7 @@ COMPAT_SYSCALL_DEFINE1(s390_mmap2, struct mmap_arg_struct_emu31 __user *, arg) | |||
454 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset); | 454 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset); |
455 | } | 455 | } |
456 | 456 | ||
457 | asmlinkage long sys32_read(unsigned int fd, char __user * buf, size_t count) | 457 | COMPAT_SYSCALL_DEFINE3(s390_read, unsigned int, fd, char __user *, buf, compat_size_t, count) |
458 | { | 458 | { |
459 | if ((compat_ssize_t) count < 0) | 459 | if ((compat_ssize_t) count < 0) |
460 | return -EINVAL; | 460 | return -EINVAL; |
@@ -462,7 +462,7 @@ asmlinkage long sys32_read(unsigned int fd, char __user * buf, size_t count) | |||
462 | return sys_read(fd, buf, count); | 462 | return sys_read(fd, buf, count); |
463 | } | 463 | } |
464 | 464 | ||
465 | asmlinkage long sys32_write(unsigned int fd, const char __user * buf, size_t count) | 465 | COMPAT_SYSCALL_DEFINE3(s390_write, unsigned int, fd, const char __user *, buf, compat_size_t, count) |
466 | { | 466 | { |
467 | if ((compat_ssize_t) count < 0) | 467 | if ((compat_ssize_t) count < 0) |
468 | return -EINVAL; | 468 | return -EINVAL; |
@@ -476,14 +476,13 @@ asmlinkage long sys32_write(unsigned int fd, const char __user * buf, size_t cou | |||
476 | * because the 31 bit values differ from the 64 bit values. | 476 | * because the 31 bit values differ from the 64 bit values. |
477 | */ | 477 | */ |
478 | 478 | ||
479 | asmlinkage long | 479 | COMPAT_SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, high, u32, low, compat_size_t, len, int, advise) |
480 | sys32_fadvise64(int fd, loff_t offset, size_t len, int advise) | ||
481 | { | 480 | { |
482 | if (advise == 4) | 481 | if (advise == 4) |
483 | advise = POSIX_FADV_DONTNEED; | 482 | advise = POSIX_FADV_DONTNEED; |
484 | else if (advise == 5) | 483 | else if (advise == 5) |
485 | advise = POSIX_FADV_NOREUSE; | 484 | advise = POSIX_FADV_NOREUSE; |
486 | return sys_fadvise64(fd, offset, len, advise); | 485 | return sys_fadvise64(fd, (unsigned long)high << 32 | low, len, advise); |
487 | } | 486 | } |
488 | 487 | ||
489 | struct fadvise64_64_args { | 488 | struct fadvise64_64_args { |
@@ -493,8 +492,7 @@ struct fadvise64_64_args { | |||
493 | int advice; | 492 | int advice; |
494 | }; | 493 | }; |
495 | 494 | ||
496 | asmlinkage long | 495 | COMPAT_SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args) |
497 | sys32_fadvise64_64(struct fadvise64_64_args __user *args) | ||
498 | { | 496 | { |
499 | struct fadvise64_64_args a; | 497 | struct fadvise64_64_args a; |
500 | 498 | ||
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index 7e7afb91252c..7d2ce4bb84a6 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
@@ -97,9 +97,6 @@ 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 compat_sys_s390_ftruncate64(unsigned int fd, u32 high, u32 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, | ||
101 | const char __user *uargs); | ||
102 | long sys32_delete_module(const char __user *name_user, unsigned int flags); | ||
103 | long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low); | 100 | long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low); |
104 | long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low); | 101 | long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low); |
105 | long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count); | 102 | long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count); |
@@ -109,8 +106,8 @@ long compat_sys_s390_fstat64(unsigned int fd, struct stat64_emu31 __user *statbu | |||
109 | long compat_sys_s390_fstatat64(unsigned int dfd, const char __user *filename, struct stat64_emu31 __user *statbuf, int flag); | 106 | long compat_sys_s390_fstatat64(unsigned int dfd, const char __user *filename, struct stat64_emu31 __user *statbuf, int flag); |
110 | long compat_sys_s390_old_mmap(struct mmap_arg_struct_emu31 __user *arg); | 107 | long compat_sys_s390_old_mmap(struct mmap_arg_struct_emu31 __user *arg); |
111 | long compat_sys_s390_mmap2(struct mmap_arg_struct_emu31 __user *arg); | 108 | long compat_sys_s390_mmap2(struct mmap_arg_struct_emu31 __user *arg); |
112 | long sys32_read(unsigned int fd, char __user * buf, size_t count); | 109 | long compat_sys_s390_read(unsigned int fd, char __user * buf, compat_size_t count); |
113 | long sys32_write(unsigned int fd, const char __user * buf, size_t count); | 110 | long compat_sys_s390_write(unsigned int fd, const char __user * buf, compat_size_t count); |
114 | long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise); | 111 | long compat_sys_s390_fadvise64(int fd, u32 high, u32 low, compat_size_t len, int advise); |
115 | long sys32_fadvise64_64(struct fadvise64_64_args __user *args); | 112 | long compat_sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); |
116 | #endif /* _ASM_S390X_S390_H */ | 113 | #endif /* _ASM_S390X_S390_H */ |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index c8ac063398bb..16ce71880cbd 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -12,18 +12,6 @@ ENTRY(sys32_exit_wrapper) | |||
12 | lgfr %r2,%r2 # int | 12 | lgfr %r2,%r2 # int |
13 | jg sys_exit # branch to sys_exit | 13 | jg sys_exit # branch to sys_exit |
14 | 14 | ||
15 | ENTRY(sys32_read_wrapper) | ||
16 | llgfr %r2,%r2 # unsigned int | ||
17 | llgtr %r3,%r3 # char * | ||
18 | llgfr %r4,%r4 # size_t | ||
19 | jg sys32_read # branch to sys_read | ||
20 | |||
21 | ENTRY(sys32_write_wrapper) | ||
22 | llgfr %r2,%r2 # unsigned int | ||
23 | llgtr %r3,%r3 # const char * | ||
24 | llgfr %r4,%r4 # size_t | ||
25 | jg sys32_write # branch to system call | ||
26 | |||
27 | ENTRY(sys32_close_wrapper) | 15 | ENTRY(sys32_close_wrapper) |
28 | llgfr %r2,%r2 # unsigned int | 16 | llgfr %r2,%r2 # unsigned int |
29 | jg sys_close # branch to system call | 17 | jg sys_close # branch to system call |
@@ -777,18 +765,6 @@ ENTRY(sys_epoll_wait_wrapper) | |||
777 | lgfr %r5,%r5 # int | 765 | lgfr %r5,%r5 # int |
778 | jg sys_epoll_wait # branch to system call | 766 | jg sys_epoll_wait # branch to system call |
779 | 767 | ||
780 | ENTRY(sys32_fadvise64_wrapper) | ||
781 | lgfr %r2,%r2 # int | ||
782 | sllg %r3,%r3,32 # get high word of 64bit loff_t | ||
783 | or %r3,%r4 # get low word of 64bit loff_t | ||
784 | llgfr %r4,%r5 # size_t (unsigned long) | ||
785 | lgfr %r5,%r6 # int | ||
786 | jg sys32_fadvise64 | ||
787 | |||
788 | ENTRY(sys32_fadvise64_64_wrapper) | ||
789 | llgtr %r2,%r2 # struct fadvise64_64_args * | ||
790 | jg sys32_fadvise64_64 | ||
791 | |||
792 | ENTRY(sys32_clock_settime_wrapper) | 768 | ENTRY(sys32_clock_settime_wrapper) |
793 | lgfr %r2,%r2 # clockid_t (int) | 769 | lgfr %r2,%r2 # clockid_t (int) |
794 | llgtr %r3,%r3 # struct compat_timespec * | 770 | llgtr %r3,%r3 # struct compat_timespec * |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 9d4e6b576173..5a83f6a52c0e 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -11,8 +11,8 @@ | |||
11 | NI_SYSCALL /* 0 */ | 11 | NI_SYSCALL /* 0 */ |
12 | SYSCALL(sys_exit,sys_exit,sys32_exit_wrapper) | 12 | SYSCALL(sys_exit,sys_exit,sys32_exit_wrapper) |
13 | SYSCALL(sys_fork,sys_fork,sys_fork) | 13 | SYSCALL(sys_fork,sys_fork,sys_fork) |
14 | SYSCALL(sys_read,sys_read,sys32_read_wrapper) | 14 | SYSCALL(sys_read,sys_read,compat_sys_s390_read) |
15 | SYSCALL(sys_write,sys_write,sys32_write_wrapper) | 15 | SYSCALL(sys_write,sys_write,compat_sys_s390_write) |
16 | SYSCALL(sys_open,sys_open,compat_sys_open) /* 5 */ | 16 | SYSCALL(sys_open,sys_open,compat_sys_open) /* 5 */ |
17 | SYSCALL(sys_close,sys_close,sys32_close_wrapper) | 17 | SYSCALL(sys_close,sys_close,sys32_close_wrapper) |
18 | SYSCALL(sys_restart_syscall,sys_restart_syscall,sys_restart_syscall) | 18 | SYSCALL(sys_restart_syscall,sys_restart_syscall,sys_restart_syscall) |
@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper) | |||
261 | SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ | 261 | SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ |
262 | SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) | 262 | SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) |
263 | SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) | 263 | SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) |
264 | SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) | 264 | SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,compat_sys_s390_fadvise64) |
265 | SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) | 265 | SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) |
266 | SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ | 266 | SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ |
267 | SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) | 267 | SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) |
@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 | |||
272 | SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) | 272 | SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) |
273 | SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) | 273 | SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) |
274 | NI_SYSCALL /* reserved for vserver */ | 274 | NI_SYSCALL /* reserved for vserver */ |
275 | SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) | 275 | SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,compat_sys_s390_fadvise64_64) |
276 | SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) | 276 | SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) |
277 | SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) | 277 | SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) |
278 | SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) | 278 | SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) |