aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2014-02-25 09:52:24 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-04 03:05:35 -0500
commit208096eee2fa44de0464e1f3c1f0c1ca1afe67ad (patch)
tree23d0938a373aa8f55c0960d5178aec192fccef06
parentc6c0f58f90cb8e159702ccc08772bc9221f1c35e (diff)
s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 2
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r--arch/s390/kernel/compat_linux.c15
-rw-r--r--arch/s390/kernel/compat_linux.h10
-rw-r--r--arch/s390/kernel/compat_wrapper.S27
-rw-r--r--arch/s390/kernel/syscalls.S10
4 files changed, 18 insertions, 44 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 9abf84e19d69..b47a8f1a2662 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -113,23 +113,24 @@ COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid)
113 return sys_setgid((gid_t)gid); 113 return sys_setgid((gid_t)gid);
114} 114}
115 115
116asmlinkage long sys32_setreuid16(u16 ruid, u16 euid) 116COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid)
117{ 117{
118 return sys_setreuid(low2highuid(ruid), low2highuid(euid)); 118 return sys_setreuid(low2highuid(ruid), low2highuid(euid));
119} 119}
120 120
121asmlinkage long sys32_setuid16(u16 uid) 121COMPAT_SYSCALL_DEFINE1(s390_setuid16, u16, uid)
122{ 122{
123 return sys_setuid((uid_t)uid); 123 return sys_setuid((uid_t)uid);
124} 124}
125 125
126asmlinkage long sys32_setresuid16(u16 ruid, u16 euid, u16 suid) 126COMPAT_SYSCALL_DEFINE3(s390_setresuid16, u16, ruid, u16, euid, u16, suid)
127{ 127{
128 return sys_setresuid(low2highuid(ruid), low2highuid(euid), 128 return sys_setresuid(low2highuid(ruid), low2highuid(euid),
129 low2highuid(suid)); 129 low2highuid(suid));
130} 130}
131 131
132asmlinkage long sys32_getresuid16(u16 __user *ruidp, u16 __user *euidp, u16 __user *suidp) 132COMPAT_SYSCALL_DEFINE3(s390_getresuid16, u16 __user *, ruidp,
133 u16 __user *, euidp, u16 __user *, suidp)
133{ 134{
134 const struct cred *cred = current_cred(); 135 const struct cred *cred = current_cred();
135 int retval; 136 int retval;
@@ -146,10 +147,10 @@ asmlinkage long sys32_getresuid16(u16 __user *ruidp, u16 __user *euidp, u16 __us
146 return retval; 147 return retval;
147} 148}
148 149
149asmlinkage long sys32_setresgid16(u16 rgid, u16 egid, u16 sgid) 150COMPAT_SYSCALL_DEFINE3(s390_setresgid16, u16, rgid, u16, egid, u16, sgid)
150{ 151{
151 return sys_setresgid(low2highgid(rgid), low2highgid(egid), 152 return sys_setresgid(low2highgid(rgid), low2highgid(egid),
152 low2highgid(sgid)); 153 low2highgid(sgid));
153} 154}
154 155
155asmlinkage long sys32_getresgid16(u16 __user *rgidp, u16 __user *egidp, u16 __user *sgidp) 156asmlinkage long sys32_getresgid16(u16 __user *rgidp, u16 __user *egidp, u16 __user *sgidp)
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h
index 161b6c40fa12..2b8dfe66b9b9 100644
--- a/arch/s390/kernel/compat_linux.h
+++ b/arch/s390/kernel/compat_linux.h
@@ -81,11 +81,11 @@ long compat_sys_s390_lchown16(const char __user *filename, u16 user, u16 group);
81long compat_sys_s390_fchown16(unsigned int fd, u16 user, u16 group); 81long compat_sys_s390_fchown16(unsigned int fd, u16 user, u16 group);
82long compat_sys_s390_setregid16(u16 rgid, u16 egid); 82long compat_sys_s390_setregid16(u16 rgid, u16 egid);
83long compat_sys_s390_setgid16(u16 gid); 83long compat_sys_s390_setgid16(u16 gid);
84long sys32_setreuid16(u16 ruid, u16 euid); 84long compat_sys_s390_setreuid16(u16 ruid, u16 euid);
85long sys32_setuid16(u16 uid); 85long compat_sys_s390_setuid16(u16 uid);
86long sys32_setresuid16(u16 ruid, u16 euid, u16 suid); 86long compat_sys_s390_setresuid16(u16 ruid, u16 euid, u16 suid);
87long sys32_getresuid16(u16 __user *ruid, u16 __user *euid, u16 __user *suid); 87long compat_sys_s390_getresuid16(u16 __user *ruid, u16 __user *euid, u16 __user *suid);
88long sys32_setresgid16(u16 rgid, u16 egid, u16 sgid); 88long compat_sys_s390_setresgid16(u16 rgid, u16 egid, u16 sgid);
89long sys32_getresgid16(u16 __user *rgid, u16 __user *egid, u16 __user *sgid); 89long sys32_getresgid16(u16 __user *rgid, u16 __user *egid, u16 __user *sgid);
90long sys32_setfsuid16(u16 uid); 90long sys32_setfsuid16(u16 uid);
91long sys32_setfsgid16(u16 gid); 91long sys32_setfsgid16(u16 gid);
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index cc85c7227dc2..a073e7f9acfa 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -75,10 +75,6 @@ ENTRY(sys32_oldumount_wrapper)
75 llgtr %r2,%r2 # char * 75 llgtr %r2,%r2 # char *
76 jg sys_oldumount # branch to system call 76 jg sys_oldumount # branch to system call
77 77
78ENTRY(sys32_setuid16_wrapper)
79 llgfr %r2,%r2 # __kernel_old_uid_emu31_t
80 jg sys32_setuid16 # branch to system call
81
82#sys32_getuid16_wrapper # void 78#sys32_getuid16_wrapper # void
83 79
84ENTRY(sys32_ptrace_wrapper) 80ENTRY(sys32_ptrace_wrapper)
@@ -204,11 +200,6 @@ ENTRY(sys32_dup2_wrapper)
204 200
205#sys32_setsid_wrapper # void 201#sys32_setsid_wrapper # void
206 202
207ENTRY(sys32_setreuid16_wrapper)
208 llgfr %r2,%r2 # __kernel_old_uid_emu31_t
209 llgfr %r3,%r3 # __kernel_old_uid_emu31_t
210 jg sys32_setreuid16 # branch to system call
211
212ENTRY(sys_sigsuspend_wrapper) 203ENTRY(sys_sigsuspend_wrapper)
213 lgfr %r2,%r2 # int 204 lgfr %r2,%r2 # int
214 lgfr %r3,%r3 # int 205 lgfr %r3,%r3 # int
@@ -555,30 +546,12 @@ ENTRY(sys32_mremap_wrapper)
555 llgfr %r6,%r6 # unsigned long 546 llgfr %r6,%r6 # unsigned long
556 jg sys_mremap # branch to system call 547 jg sys_mremap # branch to system call
557 548
558ENTRY(sys32_setresuid16_wrapper)
559 llgfr %r2,%r2 # __kernel_old_uid_emu31_t
560 llgfr %r3,%r3 # __kernel_old_uid_emu31_t
561 llgfr %r4,%r4 # __kernel_old_uid_emu31_t
562 jg sys32_setresuid16 # branch to system call
563
564ENTRY(sys32_getresuid16_wrapper)
565 llgtr %r2,%r2 # __kernel_old_uid_emu31_t *
566 llgtr %r3,%r3 # __kernel_old_uid_emu31_t *
567 llgtr %r4,%r4 # __kernel_old_uid_emu31_t *
568 jg sys32_getresuid16 # branch to system call
569
570ENTRY(sys32_poll_wrapper) 549ENTRY(sys32_poll_wrapper)
571 llgtr %r2,%r2 # struct pollfd * 550 llgtr %r2,%r2 # struct pollfd *
572 llgfr %r3,%r3 # unsigned int 551 llgfr %r3,%r3 # unsigned int
573 lgfr %r4,%r4 # int 552 lgfr %r4,%r4 # int
574 jg sys_poll # branch to system call 553 jg sys_poll # branch to system call
575 554
576ENTRY(sys32_setresgid16_wrapper)
577 llgfr %r2,%r2 # __kernel_old_gid_emu31_t
578 llgfr %r3,%r3 # __kernel_old_gid_emu31_t
579 llgfr %r4,%r4 # __kernel_old_gid_emu31_t
580 jg sys32_setresgid16 # branch to system call
581
582ENTRY(sys32_getresgid16_wrapper) 555ENTRY(sys32_getresgid16_wrapper)
583 llgtr %r2,%r2 # __kernel_old_gid_emu31_t * 556 llgtr %r2,%r2 # __kernel_old_gid_emu31_t *
584 llgtr %r3,%r3 # __kernel_old_gid_emu31_t * 557 llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index a2986306fbb5..8c7c4a6f6722 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -31,7 +31,7 @@ SYSCALL(sys_lseek,sys_lseek,compat_sys_lseek)
31SYSCALL(sys_getpid,sys_getpid,sys_getpid) /* 20 */ 31SYSCALL(sys_getpid,sys_getpid,sys_getpid) /* 20 */
32SYSCALL(sys_mount,sys_mount,sys32_mount_wrapper) 32SYSCALL(sys_mount,sys_mount,sys32_mount_wrapper)
33SYSCALL(sys_oldumount,sys_oldumount,sys32_oldumount_wrapper) 33SYSCALL(sys_oldumount,sys_oldumount,sys32_oldumount_wrapper)
34SYSCALL(sys_setuid16,sys_ni_syscall,sys32_setuid16_wrapper) /* old setuid16 syscall*/ 34SYSCALL(sys_setuid16,sys_ni_syscall,compat_sys_s390_setuid16) /* old setuid16 syscall*/
35SYSCALL(sys_getuid16,sys_ni_syscall,sys32_getuid16) /* old getuid16 syscall*/ 35SYSCALL(sys_getuid16,sys_ni_syscall,sys32_getuid16) /* old getuid16 syscall*/
36SYSCALL(sys_stime,sys_ni_syscall,sys32_stime_wrapper) /* 25 old stime syscall */ 36SYSCALL(sys_stime,sys_ni_syscall,sys32_stime_wrapper) /* 25 old stime syscall */
37SYSCALL(sys_ptrace,sys_ptrace,sys32_ptrace_wrapper) 37SYSCALL(sys_ptrace,sys_ptrace,sys32_ptrace_wrapper)
@@ -78,7 +78,7 @@ SYSCALL(sys_setsid,sys_setsid,sys_setsid)
78SYSCALL(sys_sigaction,sys_sigaction,compat_sys_sigaction) 78SYSCALL(sys_sigaction,sys_sigaction,compat_sys_sigaction)
79NI_SYSCALL /* old sgetmask syscall*/ 79NI_SYSCALL /* old sgetmask syscall*/
80NI_SYSCALL /* old ssetmask syscall*/ 80NI_SYSCALL /* old ssetmask syscall*/
81SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */ 81SYSCALL(sys_setreuid16,sys_ni_syscall,compat_sys_s390_setreuid16) /* old setreuid16 syscall */
82SYSCALL(sys_setregid16,sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */ 82SYSCALL(sys_setregid16,sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */
83SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper) 83SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper)
84SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper) 84SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper)
@@ -172,13 +172,13 @@ SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min,sys32_sched_get_pr
172SYSCALL(sys_sched_rr_get_interval,sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval) 172SYSCALL(sys_sched_rr_get_interval,sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval)
173SYSCALL(sys_nanosleep,sys_nanosleep,compat_sys_nanosleep_wrapper) 173SYSCALL(sys_nanosleep,sys_nanosleep,compat_sys_nanosleep_wrapper)
174SYSCALL(sys_mremap,sys_mremap,sys32_mremap_wrapper) 174SYSCALL(sys_mremap,sys_mremap,sys32_mremap_wrapper)
175SYSCALL(sys_setresuid16,sys_ni_syscall,sys32_setresuid16_wrapper) /* old setresuid16 syscall */ 175SYSCALL(sys_setresuid16,sys_ni_syscall,compat_sys_s390_setresuid16) /* old setresuid16 syscall */
176SYSCALL(sys_getresuid16,sys_ni_syscall,sys32_getresuid16_wrapper) /* 165 old getresuid16 syscall */ 176SYSCALL(sys_getresuid16,sys_ni_syscall,compat_sys_s390_getresuid16) /* 165 old getresuid16 syscall */
177NI_SYSCALL /* for vm86 */ 177NI_SYSCALL /* for vm86 */
178NI_SYSCALL /* old sys_query_module */ 178NI_SYSCALL /* old sys_query_module */
179SYSCALL(sys_poll,sys_poll,sys32_poll_wrapper) 179SYSCALL(sys_poll,sys_poll,sys32_poll_wrapper)
180NI_SYSCALL /* old nfsservctl */ 180NI_SYSCALL /* old nfsservctl */
181SYSCALL(sys_setresgid16,sys_ni_syscall,sys32_setresgid16_wrapper) /* 170 old setresgid16 syscall */ 181SYSCALL(sys_setresgid16,sys_ni_syscall,compat_sys_s390_setresgid16) /* 170 old setresgid16 syscall */
182SYSCALL(sys_getresgid16,sys_ni_syscall,sys32_getresgid16_wrapper) /* old getresgid16 syscall */ 182SYSCALL(sys_getresgid16,sys_ni_syscall,sys32_getresgid16_wrapper) /* old getresgid16 syscall */
183SYSCALL(sys_prctl,sys_prctl,sys32_prctl_wrapper) 183SYSCALL(sys_prctl,sys_prctl,sys32_prctl_wrapper)
184SYSCALL(sys_rt_sigreturn,sys_rt_sigreturn,sys32_rt_sigreturn) 184SYSCALL(sys_rt_sigreturn,sys_rt_sigreturn,sys32_rt_sigreturn)