aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2014-02-27 08:04:43 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-04 03:05:39 -0500
commitbe06fbf816020a846991ef7f5489ac0027320ea3 (patch)
tree02a6d694708650ec8ad0cb70818651e33aa2cb14 /arch
parent473a06572fcd6b2e321d4b82c19ecafe383e8be9 (diff)
s390/compat: convert system call wrappers to C part 03
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/kernel/compat_wrap.c10
-rw-r--r--arch/s390/kernel/compat_wrapper.S55
-rw-r--r--arch/s390/kernel/syscalls.S20
3 files changed, 20 insertions, 65 deletions
diff --git a/arch/s390/kernel/compat_wrap.c b/arch/s390/kernel/compat_wrap.c
index 93f13f2350d4..ac26ee715553 100644
--- a/arch/s390/kernel/compat_wrap.c
+++ b/arch/s390/kernel/compat_wrap.c
@@ -43,3 +43,13 @@ COMPAT_SYSCALL_WRAP1(brk, compat_ulong_t, brk);
43COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); 43COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler);
44COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); 44COMPAT_SYSCALL_WRAP1(acct, const char __user *, name);
45COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); 45COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags);
46COMPAT_SYSCALL_WRAP2(setpgid, compat_pid_t, pid, compat_pid_t, pgid);
47COMPAT_SYSCALL_WRAP1(umask, int, mask);
48COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename);
49COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd);
50COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, compat_old_sigset_t, mask);
51COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len);
52COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new);
53COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz);
54COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library);
55COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags);
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index e1b9d4ab0796..359751108b8b 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -50,50 +50,15 @@ ENTRY(compat_sys_fcntl_wrapper)
50 llgfr %r4,%r4 # unsigned long 50 llgfr %r4,%r4 # unsigned long
51 jg compat_sys_fcntl # branch to system call 51 jg compat_sys_fcntl # branch to system call
52 52
53ENTRY(sys32_setpgid_wrapper)
54 lgfr %r2,%r2 # pid_t
55 lgfr %r3,%r3 # pid_t
56 jg sys_setpgid # branch to system call
57
58ENTRY(sys32_umask_wrapper)
59 lgfr %r2,%r2 # int
60 jg sys_umask # branch to system call
61
62ENTRY(sys32_chroot_wrapper)
63 llgtr %r2,%r2 # char *
64 jg sys_chroot # branch to system call
65
66ENTRY(sys32_ustat_wrapper) 53ENTRY(sys32_ustat_wrapper)
67 llgfr %r2,%r2 # dev_t 54 llgfr %r2,%r2 # dev_t
68 llgtr %r3,%r3 # struct ustat * 55 llgtr %r3,%r3 # struct ustat *
69 jg compat_sys_ustat 56 jg compat_sys_ustat
70 57
71ENTRY(sys32_dup2_wrapper)
72 llgfr %r2,%r2 # unsigned int
73 llgfr %r3,%r3 # unsigned int
74 jg sys_dup2 # branch to system call
75
76#sys32_getppid_wrapper # void
77
78#sys32_getpgrp_wrapper # void
79
80#sys32_setsid_wrapper # void
81
82ENTRY(sys_sigsuspend_wrapper)
83 lgfr %r2,%r2 # int
84 lgfr %r3,%r3 # int
85 llgfr %r4,%r4 # old_sigset_t
86 jg sys_sigsuspend
87
88ENTRY(compat_sys_sigpending_wrapper) 58ENTRY(compat_sys_sigpending_wrapper)
89 llgtr %r2,%r2 # compat_old_sigset_t * 59 llgtr %r2,%r2 # compat_old_sigset_t *
90 jg compat_sys_sigpending # branch to system call 60 jg compat_sys_sigpending # branch to system call
91 61
92ENTRY(sys32_sethostname_wrapper)
93 llgtr %r2,%r2 # char *
94 lgfr %r3,%r3 # int
95 jg sys_sethostname # branch to system call
96
97ENTRY(compat_sys_setrlimit_wrapper) 62ENTRY(compat_sys_setrlimit_wrapper)
98 llgfr %r2,%r2 # unsigned int 63 llgfr %r2,%r2 # unsigned int
99 llgtr %r3,%r3 # struct rlimit_emu31 * 64 llgtr %r3,%r3 # struct rlimit_emu31 *
@@ -119,26 +84,6 @@ ENTRY(compat_sys_settimeofday_wrapper)
119 llgtr %r3,%r3 # struct timezone * 84 llgtr %r3,%r3 # struct timezone *
120 jg compat_sys_settimeofday # branch to system call 85 jg compat_sys_settimeofday # branch to system call
121 86
122ENTRY(sys32_symlink_wrapper)
123 llgtr %r2,%r2 # const char *
124 llgtr %r3,%r3 # const char *
125 jg sys_symlink # branch to system call
126
127ENTRY(sys32_readlink_wrapper)
128 llgtr %r2,%r2 # const char *
129 llgtr %r3,%r3 # char *
130 lgfr %r4,%r4 # int
131 jg sys_readlink # branch to system call
132
133ENTRY(sys32_uselib_wrapper)
134 llgtr %r2,%r2 # const char *
135 jg sys_uselib # branch to system call
136
137ENTRY(sys32_swapon_wrapper)
138 llgtr %r2,%r2 # const char *
139 lgfr %r3,%r3 # int
140 jg sys_swapon # branch to system call
141
142ENTRY(sys32_reboot_wrapper) 87ENTRY(sys32_reboot_wrapper)
143 lgfr %r2,%r2 # int 88 lgfr %r2,%r2 # int
144 lgfr %r3,%r3 # int 89 lgfr %r3,%r3 # int
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index da6bffd5c473..5bc24d9167dc 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -65,13 +65,13 @@ NI_SYSCALL /* old lock syscall */
65SYSCALL(sys_ioctl,sys_ioctl,compat_sys_ioctl_wrapper) 65SYSCALL(sys_ioctl,sys_ioctl,compat_sys_ioctl_wrapper)
66SYSCALL(sys_fcntl,sys_fcntl,compat_sys_fcntl_wrapper) /* 55 */ 66SYSCALL(sys_fcntl,sys_fcntl,compat_sys_fcntl_wrapper) /* 55 */
67NI_SYSCALL /* intel mpx syscall */ 67NI_SYSCALL /* intel mpx syscall */
68SYSCALL(sys_setpgid,sys_setpgid,sys32_setpgid_wrapper) 68SYSCALL(sys_setpgid,sys_setpgid,compat_sys_setpgid)
69NI_SYSCALL /* old ulimit syscall */ 69NI_SYSCALL /* old ulimit syscall */
70NI_SYSCALL /* old uname syscall */ 70NI_SYSCALL /* old uname syscall */
71SYSCALL(sys_umask,sys_umask,sys32_umask_wrapper) /* 60 */ 71SYSCALL(sys_umask,sys_umask,compat_sys_umask) /* 60 */
72SYSCALL(sys_chroot,sys_chroot,sys32_chroot_wrapper) 72SYSCALL(sys_chroot,sys_chroot,compat_sys_chroot)
73SYSCALL(sys_ustat,sys_ustat,sys32_ustat_wrapper) 73SYSCALL(sys_ustat,sys_ustat,sys32_ustat_wrapper)
74SYSCALL(sys_dup2,sys_dup2,sys32_dup2_wrapper) 74SYSCALL(sys_dup2,sys_dup2,compat_sys_dup2)
75SYSCALL(sys_getppid,sys_getppid,sys_getppid) 75SYSCALL(sys_getppid,sys_getppid,sys_getppid)
76SYSCALL(sys_getpgrp,sys_getpgrp,sys_getpgrp) /* 65 */ 76SYSCALL(sys_getpgrp,sys_getpgrp,sys_getpgrp) /* 65 */
77SYSCALL(sys_setsid,sys_setsid,sys_setsid) 77SYSCALL(sys_setsid,sys_setsid,sys_setsid)
@@ -80,9 +80,9 @@ NI_SYSCALL /* old sgetmask syscall*/
80NI_SYSCALL /* old ssetmask syscall*/ 80NI_SYSCALL /* old ssetmask syscall*/
81SYSCALL(sys_setreuid16,sys_ni_syscall,compat_sys_s390_setreuid16) /* 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,compat_sys_sigsuspend)
84SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper) 84SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper)
85SYSCALL(sys_sethostname,sys_sethostname,sys32_sethostname_wrapper) 85SYSCALL(sys_sethostname,sys_sethostname,compat_sys_sethostname)
86SYSCALL(sys_setrlimit,sys_setrlimit,compat_sys_setrlimit_wrapper) /* 75 */ 86SYSCALL(sys_setrlimit,sys_setrlimit,compat_sys_setrlimit_wrapper) /* 75 */
87SYSCALL(sys_old_getrlimit,sys_getrlimit,compat_sys_old_getrlimit_wrapper) 87SYSCALL(sys_old_getrlimit,sys_getrlimit,compat_sys_old_getrlimit_wrapper)
88SYSCALL(sys_getrusage,sys_getrusage,compat_sys_getrusage) 88SYSCALL(sys_getrusage,sys_getrusage,compat_sys_getrusage)
@@ -91,11 +91,11 @@ SYSCALL(sys_settimeofday,sys_settimeofday,compat_sys_settimeofday_wrapper)
91SYSCALL(sys_getgroups16,sys_ni_syscall,compat_sys_s390_getgroups16) /* 80 old getgroups16 syscall */ 91SYSCALL(sys_getgroups16,sys_ni_syscall,compat_sys_s390_getgroups16) /* 80 old getgroups16 syscall */
92SYSCALL(sys_setgroups16,sys_ni_syscall,compat_sys_s390_setgroups16) /* old setgroups16 syscall */ 92SYSCALL(sys_setgroups16,sys_ni_syscall,compat_sys_s390_setgroups16) /* old setgroups16 syscall */
93NI_SYSCALL /* old select syscall */ 93NI_SYSCALL /* old select syscall */
94SYSCALL(sys_symlink,sys_symlink,sys32_symlink_wrapper) 94SYSCALL(sys_symlink,sys_symlink,compat_sys_symlink)
95NI_SYSCALL /* old lstat syscall */ 95NI_SYSCALL /* old lstat syscall */
96SYSCALL(sys_readlink,sys_readlink,sys32_readlink_wrapper) /* 85 */ 96SYSCALL(sys_readlink,sys_readlink,compat_sys_readlink) /* 85 */
97SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper) 97SYSCALL(sys_uselib,sys_uselib,compat_sys_uselib)
98SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) 98SYSCALL(sys_swapon,sys_swapon,compat_sys_swapon)
99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) 99SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ 100SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */
101SYSCALL(sys_old_mmap,sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */ 101SYSCALL(sys_old_mmap,sys_old_mmap,compat_sys_s390_old_mmap) /* 90 */