diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-02-25 08:08:39 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-04 03:05:34 -0500 |
commit | c6c0f58f90cb8e159702ccc08772bc9221f1c35e (patch) | |
tree | e2afc56afe2735708ed746bb57b85e5d7bc7494b /arch/s390 | |
parent | 217f4433fc2fe768a7f13f7e5586333bb8280e9e (diff) |
s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 1
Convert s390 specific system calls to to the new COMPAT_SYSCALL_DEFINE macro.
This allows us to get rid of the assembly compat wrappers.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 12 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 10 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 27 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 10 |
4 files changed, 17 insertions, 42 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index db02052bd137..9abf84e19d69 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -86,27 +86,29 @@ | |||
86 | #define SET_STAT_UID(stat, uid) (stat).st_uid = high2lowuid(uid) | 86 | #define SET_STAT_UID(stat, uid) (stat).st_uid = high2lowuid(uid) |
87 | #define SET_STAT_GID(stat, gid) (stat).st_gid = high2lowgid(gid) | 87 | #define SET_STAT_GID(stat, gid) (stat).st_gid = high2lowgid(gid) |
88 | 88 | ||
89 | asmlinkage long sys32_chown16(const char __user * filename, u16 user, u16 group) | 89 | COMPAT_SYSCALL_DEFINE3(s390_chown16, const char __user *, filename, |
90 | u16, user, u16, group) | ||
90 | { | 91 | { |
91 | return sys_chown(filename, low2highuid(user), low2highgid(group)); | 92 | return sys_chown(filename, low2highuid(user), low2highgid(group)); |
92 | } | 93 | } |
93 | 94 | ||
94 | asmlinkage long sys32_lchown16(const char __user * filename, u16 user, u16 group) | 95 | COMPAT_SYSCALL_DEFINE3(s390_lchown16, const char __user *, |
96 | filename, u16, user, u16, group) | ||
95 | { | 97 | { |
96 | return sys_lchown(filename, low2highuid(user), low2highgid(group)); | 98 | return sys_lchown(filename, low2highuid(user), low2highgid(group)); |
97 | } | 99 | } |
98 | 100 | ||
99 | asmlinkage long sys32_fchown16(unsigned int fd, u16 user, u16 group) | 101 | COMPAT_SYSCALL_DEFINE3(s390_fchown16, unsigned int, fd, u16, user, u16, group) |
100 | { | 102 | { |
101 | return sys_fchown(fd, low2highuid(user), low2highgid(group)); | 103 | return sys_fchown(fd, low2highuid(user), low2highgid(group)); |
102 | } | 104 | } |
103 | 105 | ||
104 | asmlinkage long sys32_setregid16(u16 rgid, u16 egid) | 106 | COMPAT_SYSCALL_DEFINE2(s390_setregid16, u16, rgid, u16, egid) |
105 | { | 107 | { |
106 | return sys_setregid(low2highgid(rgid), low2highgid(egid)); | 108 | return sys_setregid(low2highgid(rgid), low2highgid(egid)); |
107 | } | 109 | } |
108 | 110 | ||
109 | asmlinkage long sys32_setgid16(u16 gid) | 111 | COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid) |
110 | { | 112 | { |
111 | return sys_setgid((gid_t)gid); | 113 | return sys_setgid((gid_t)gid); |
112 | } | 114 | } |
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index 1bfda3eca379..161b6c40fa12 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
@@ -76,11 +76,11 @@ struct stat64_emu31; | |||
76 | struct mmap_arg_struct_emu31; | 76 | struct mmap_arg_struct_emu31; |
77 | struct fadvise64_64_args; | 77 | struct fadvise64_64_args; |
78 | 78 | ||
79 | long sys32_chown16(const char __user * filename, u16 user, u16 group); | 79 | long compat_sys_s390_chown16(const char __user *filename, u16 user, u16 group); |
80 | long sys32_lchown16(const char __user * filename, u16 user, u16 group); | 80 | long compat_sys_s390_lchown16(const char __user *filename, u16 user, u16 group); |
81 | long sys32_fchown16(unsigned int fd, u16 user, u16 group); | 81 | long compat_sys_s390_fchown16(unsigned int fd, u16 user, u16 group); |
82 | long sys32_setregid16(u16 rgid, u16 egid); | 82 | long compat_sys_s390_setregid16(u16 rgid, u16 egid); |
83 | long sys32_setgid16(u16 gid); | 83 | long compat_sys_s390_setgid16(u16 gid); |
84 | long sys32_setreuid16(u16 ruid, u16 euid); | 84 | long sys32_setreuid16(u16 ruid, u16 euid); |
85 | long sys32_setuid16(u16 uid); | 85 | long sys32_setuid16(u16 uid); |
86 | long sys32_setresuid16(u16 ruid, u16 euid, u16 suid); | 86 | long sys32_setresuid16(u16 ruid, u16 euid, u16 suid); |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 0248949a756d..cc85c7227dc2 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -61,12 +61,6 @@ ENTRY(sys32_chmod_wrapper) | |||
61 | llgfr %r3,%r3 # mode_t | 61 | llgfr %r3,%r3 # mode_t |
62 | jg sys_chmod # branch to system call | 62 | jg sys_chmod # branch to system call |
63 | 63 | ||
64 | ENTRY(sys32_lchown16_wrapper) | ||
65 | llgtr %r2,%r2 # const char * | ||
66 | llgfr %r3,%r3 # __kernel_old_uid_emu31_t | ||
67 | llgfr %r4,%r4 # __kernel_old_uid_emu31_t | ||
68 | jg sys32_lchown16 # branch to system call | ||
69 | |||
70 | #sys32_getpid_wrapper # void | 64 | #sys32_getpid_wrapper # void |
71 | 65 | ||
72 | ENTRY(sys32_mount_wrapper) | 66 | ENTRY(sys32_mount_wrapper) |
@@ -149,10 +143,6 @@ ENTRY(sys32_brk_wrapper) | |||
149 | llgtr %r2,%r2 # unsigned long | 143 | llgtr %r2,%r2 # unsigned long |
150 | jg sys_brk # branch to system call | 144 | jg sys_brk # branch to system call |
151 | 145 | ||
152 | ENTRY(sys32_setgid16_wrapper) | ||
153 | llgfr %r2,%r2 # __kernel_old_gid_emu31_t | ||
154 | jg sys32_setgid16 # branch to system call | ||
155 | |||
156 | #sys32_getgid16_wrapper # void | 146 | #sys32_getgid16_wrapper # void |
157 | 147 | ||
158 | ENTRY(sys32_signal_wrapper) | 148 | ENTRY(sys32_signal_wrapper) |
@@ -219,11 +209,6 @@ ENTRY(sys32_setreuid16_wrapper) | |||
219 | llgfr %r3,%r3 # __kernel_old_uid_emu31_t | 209 | llgfr %r3,%r3 # __kernel_old_uid_emu31_t |
220 | jg sys32_setreuid16 # branch to system call | 210 | jg sys32_setreuid16 # branch to system call |
221 | 211 | ||
222 | ENTRY(sys32_setregid16_wrapper) | ||
223 | llgfr %r2,%r2 # __kernel_old_gid_emu31_t | ||
224 | llgfr %r3,%r3 # __kernel_old_gid_emu31_t | ||
225 | jg sys32_setregid16 # branch to system call | ||
226 | |||
227 | ENTRY(sys_sigsuspend_wrapper) | 212 | ENTRY(sys_sigsuspend_wrapper) |
228 | lgfr %r2,%r2 # int | 213 | lgfr %r2,%r2 # int |
229 | lgfr %r3,%r3 # int | 214 | lgfr %r3,%r3 # int |
@@ -325,12 +310,6 @@ ENTRY(sys32_fchmod_wrapper) | |||
325 | llgfr %r3,%r3 # mode_t | 310 | llgfr %r3,%r3 # mode_t |
326 | jg sys_fchmod # branch to system call | 311 | jg sys_fchmod # branch to system call |
327 | 312 | ||
328 | ENTRY(sys32_fchown16_wrapper) | ||
329 | llgfr %r2,%r2 # unsigned int | ||
330 | llgfr %r3,%r3 # compat_uid_t | ||
331 | llgfr %r4,%r4 # compat_uid_t | ||
332 | jg sys32_fchown16 # branch to system call | ||
333 | |||
334 | ENTRY(sys32_getpriority_wrapper) | 313 | ENTRY(sys32_getpriority_wrapper) |
335 | lgfr %r2,%r2 # int | 314 | lgfr %r2,%r2 # int |
336 | lgfr %r3,%r3 # int | 315 | lgfr %r3,%r3 # int |
@@ -632,12 +611,6 @@ ENTRY(sys32_pwrite64_wrapper) | |||
632 | llgfr %r6,%r6 # u32 | 611 | llgfr %r6,%r6 # u32 |
633 | jg sys32_pwrite64 # branch to system call | 612 | jg sys32_pwrite64 # branch to system call |
634 | 613 | ||
635 | ENTRY(sys32_chown16_wrapper) | ||
636 | llgtr %r2,%r2 # const char * | ||
637 | llgfr %r3,%r3 # __kernel_old_uid_emu31_t | ||
638 | llgfr %r4,%r4 # __kernel_old_gid_emu31_t | ||
639 | jg sys32_chown16 # branch to system call | ||
640 | |||
641 | ENTRY(sys32_getcwd_wrapper) | 614 | ENTRY(sys32_getcwd_wrapper) |
642 | llgtr %r2,%r2 # char * | 615 | llgtr %r2,%r2 # char * |
643 | llgfr %r3,%r3 # unsigned long | 616 | llgfr %r3,%r3 # unsigned long |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 143992152ec9..a2986306fbb5 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -24,7 +24,7 @@ SYSCALL(sys_chdir,sys_chdir,sys32_chdir_wrapper) | |||
24 | SYSCALL(sys_time,sys_ni_syscall,sys32_time_wrapper) /* old time syscall */ | 24 | SYSCALL(sys_time,sys_ni_syscall,sys32_time_wrapper) /* old time syscall */ |
25 | SYSCALL(sys_mknod,sys_mknod,sys32_mknod_wrapper) | 25 | SYSCALL(sys_mknod,sys_mknod,sys32_mknod_wrapper) |
26 | SYSCALL(sys_chmod,sys_chmod,sys32_chmod_wrapper) /* 15 */ | 26 | SYSCALL(sys_chmod,sys_chmod,sys32_chmod_wrapper) /* 15 */ |
27 | SYSCALL(sys_lchown16,sys_ni_syscall,sys32_lchown16_wrapper) /* old lchown16 syscall*/ | 27 | SYSCALL(sys_lchown16,sys_ni_syscall,compat_sys_s390_lchown16) /* old lchown16 syscall*/ |
28 | NI_SYSCALL /* old break syscall holder */ | 28 | NI_SYSCALL /* old break syscall holder */ |
29 | NI_SYSCALL /* old stat syscall holder */ | 29 | NI_SYSCALL /* old stat syscall holder */ |
30 | SYSCALL(sys_lseek,sys_lseek,compat_sys_lseek) | 30 | SYSCALL(sys_lseek,sys_lseek,compat_sys_lseek) |
@@ -54,7 +54,7 @@ SYSCALL(sys_pipe,sys_pipe,sys32_pipe_wrapper) | |||
54 | SYSCALL(sys_times,sys_times,compat_sys_times_wrapper) | 54 | SYSCALL(sys_times,sys_times,compat_sys_times_wrapper) |
55 | NI_SYSCALL /* old prof syscall */ | 55 | NI_SYSCALL /* old prof syscall */ |
56 | SYSCALL(sys_brk,sys_brk,sys32_brk_wrapper) /* 45 */ | 56 | SYSCALL(sys_brk,sys_brk,sys32_brk_wrapper) /* 45 */ |
57 | SYSCALL(sys_setgid16,sys_ni_syscall,sys32_setgid16_wrapper) /* old setgid16 syscall*/ | 57 | SYSCALL(sys_setgid16,sys_ni_syscall,compat_sys_s390_setgid16) /* old setgid16 syscall*/ |
58 | SYSCALL(sys_getgid16,sys_ni_syscall,sys32_getgid16) /* old getgid16 syscall*/ | 58 | SYSCALL(sys_getgid16,sys_ni_syscall,sys32_getgid16) /* old getgid16 syscall*/ |
59 | SYSCALL(sys_signal,sys_signal,sys32_signal_wrapper) | 59 | SYSCALL(sys_signal,sys_signal,sys32_signal_wrapper) |
60 | SYSCALL(sys_geteuid16,sys_ni_syscall,sys32_geteuid16) /* old geteuid16 syscall */ | 60 | SYSCALL(sys_geteuid16,sys_ni_syscall,sys32_geteuid16) /* old geteuid16 syscall */ |
@@ -79,7 +79,7 @@ SYSCALL(sys_sigaction,sys_sigaction,compat_sys_sigaction) | |||
79 | NI_SYSCALL /* old sgetmask syscall*/ | 79 | NI_SYSCALL /* old sgetmask syscall*/ |
80 | NI_SYSCALL /* old ssetmask syscall*/ | 80 | NI_SYSCALL /* old ssetmask syscall*/ |
81 | SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */ | 81 | SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */ |
82 | SYSCALL(sys_setregid16,sys_ni_syscall,sys32_setregid16_wrapper) /* old setregid16 syscall */ | 82 | SYSCALL(sys_setregid16,sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */ |
83 | SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper) | 83 | SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper) |
84 | SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper) | 84 | SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper) |
85 | SYSCALL(sys_sethostname,sys_sethostname,sys32_sethostname_wrapper) | 85 | SYSCALL(sys_sethostname,sys_sethostname,sys32_sethostname_wrapper) |
@@ -103,7 +103,7 @@ SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) | |||
103 | SYSCALL(sys_truncate,sys_truncate,compat_sys_truncate) | 103 | SYSCALL(sys_truncate,sys_truncate,compat_sys_truncate) |
104 | SYSCALL(sys_ftruncate,sys_ftruncate,compat_sys_ftruncate) | 104 | SYSCALL(sys_ftruncate,sys_ftruncate,compat_sys_ftruncate) |
105 | SYSCALL(sys_fchmod,sys_fchmod,sys32_fchmod_wrapper) | 105 | SYSCALL(sys_fchmod,sys_fchmod,sys32_fchmod_wrapper) |
106 | SYSCALL(sys_fchown16,sys_ni_syscall,sys32_fchown16_wrapper) /* 95 old fchown16 syscall*/ | 106 | SYSCALL(sys_fchown16,sys_ni_syscall,compat_sys_s390_fchown16) /* 95 old fchown16 syscall*/ |
107 | SYSCALL(sys_getpriority,sys_getpriority,sys32_getpriority_wrapper) | 107 | SYSCALL(sys_getpriority,sys_getpriority,sys32_getpriority_wrapper) |
108 | SYSCALL(sys_setpriority,sys_setpriority,sys32_setpriority_wrapper) | 108 | SYSCALL(sys_setpriority,sys_setpriority,sys32_setpriority_wrapper) |
109 | NI_SYSCALL /* old profil syscall */ | 109 | NI_SYSCALL /* old profil syscall */ |
@@ -190,7 +190,7 @@ 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,sys32_pread64_wrapper) /* 180 */ |
192 | SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper) | 192 | SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper) |
193 | SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* 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) |
196 | SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ | 196 | SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ |