s390/compat: convert system call wrappers to C part 03
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 27 Feb 2014 13:04:43 +0000 (14:04 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 4 Mar 2014 08:05:39 +0000 (09:05 +0100)
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/kernel/compat_wrap.c
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/syscalls.S

index 93f13f2350d4b8a1f7ac91acd71a50e9937a64a8..ac26ee71555330f81266a9aeb35279e58a5b1b9a 100644 (file)
@@ -43,3 +43,13 @@ COMPAT_SYSCALL_WRAP1(brk, compat_ulong_t, brk);
 COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler);
 COMPAT_SYSCALL_WRAP1(acct, const char __user *, name);
 COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags);
+COMPAT_SYSCALL_WRAP2(setpgid, compat_pid_t, pid, compat_pid_t, pgid);
+COMPAT_SYSCALL_WRAP1(umask, int, mask);
+COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename);
+COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd);
+COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, compat_old_sigset_t, mask);
+COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len);
+COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new);
+COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz);
+COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library);
+COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags);
index e1b9d4ab07967d408558cf513a78c1f8395cf2f1..359751108b8b74d86537903ac3e45ba72029847e 100644 (file)
@@ -50,50 +50,15 @@ ENTRY(compat_sys_fcntl_wrapper)
        llgfr   %r4,%r4                 # unsigned long
        jg      compat_sys_fcntl        # branch to system call
 
-ENTRY(sys32_setpgid_wrapper)
-       lgfr    %r2,%r2                 # pid_t
-       lgfr    %r3,%r3                 # pid_t
-       jg      sys_setpgid             # branch to system call
-
-ENTRY(sys32_umask_wrapper)
-       lgfr    %r2,%r2                 # int
-       jg      sys_umask               # branch to system call
-
-ENTRY(sys32_chroot_wrapper)
-       llgtr   %r2,%r2                 # char *
-       jg      sys_chroot              # branch to system call
-
 ENTRY(sys32_ustat_wrapper)
        llgfr   %r2,%r2                 # dev_t
        llgtr   %r3,%r3                 # struct ustat *
        jg      compat_sys_ustat
 
-ENTRY(sys32_dup2_wrapper)
-       llgfr   %r2,%r2                 # unsigned int
-       llgfr   %r3,%r3                 # unsigned int
-       jg      sys_dup2                # branch to system call
-
-#sys32_getppid_wrapper                 # void
-
-#sys32_getpgrp_wrapper                 # void
-
-#sys32_setsid_wrapper                  # void
-
-ENTRY(sys_sigsuspend_wrapper)
-       lgfr    %r2,%r2                 # int
-       lgfr    %r3,%r3                 # int
-       llgfr   %r4,%r4                 # old_sigset_t
-       jg      sys_sigsuspend
-
 ENTRY(compat_sys_sigpending_wrapper)
        llgtr   %r2,%r2                 # compat_old_sigset_t *
        jg      compat_sys_sigpending   # branch to system call
 
-ENTRY(sys32_sethostname_wrapper)
-       llgtr   %r2,%r2                 # char *
-       lgfr    %r3,%r3                 # int
-       jg      sys_sethostname         # branch to system call
-
 ENTRY(compat_sys_setrlimit_wrapper)
        llgfr   %r2,%r2                 # unsigned int
        llgtr   %r3,%r3                 # struct rlimit_emu31 *
@@ -119,26 +84,6 @@ ENTRY(compat_sys_settimeofday_wrapper)
        llgtr   %r3,%r3                 # struct timezone *
        jg      compat_sys_settimeofday # branch to system call
 
-ENTRY(sys32_symlink_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       llgtr   %r3,%r3                 # const char *
-       jg      sys_symlink             # branch to system call
-
-ENTRY(sys32_readlink_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       llgtr   %r3,%r3                 # char *
-       lgfr    %r4,%r4                 # int
-       jg      sys_readlink            # branch to system call
-
-ENTRY(sys32_uselib_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       jg      sys_uselib              # branch to system call
-
-ENTRY(sys32_swapon_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       lgfr    %r3,%r3                 # int
-       jg      sys_swapon              # branch to system call
-
 ENTRY(sys32_reboot_wrapper)
        lgfr    %r2,%r2                 # int
        lgfr    %r3,%r3                 # int
index da6bffd5c47329e279e5d2a5b50354a83f658087..5bc24d9167dc07ca6302a77c599ab5838b398920 100644 (file)
@@ -65,13 +65,13 @@ NI_SYSCALL                                                  /* old lock syscall */
 SYSCALL(sys_ioctl,sys_ioctl,compat_sys_ioctl_wrapper)
 SYSCALL(sys_fcntl,sys_fcntl,compat_sys_fcntl_wrapper)          /* 55 */
 NI_SYSCALL                                                     /* intel mpx syscall */
-SYSCALL(sys_setpgid,sys_setpgid,sys32_setpgid_wrapper)
+SYSCALL(sys_setpgid,sys_setpgid,compat_sys_setpgid)
 NI_SYSCALL                                                     /* old ulimit syscall */
 NI_SYSCALL                                                     /* old uname syscall */
-SYSCALL(sys_umask,sys_umask,sys32_umask_wrapper)               /* 60 */
-SYSCALL(sys_chroot,sys_chroot,sys32_chroot_wrapper)
+SYSCALL(sys_umask,sys_umask,compat_sys_umask)                  /* 60 */
+SYSCALL(sys_chroot,sys_chroot,compat_sys_chroot)
 SYSCALL(sys_ustat,sys_ustat,sys32_ustat_wrapper)
-SYSCALL(sys_dup2,sys_dup2,sys32_dup2_wrapper)
+SYSCALL(sys_dup2,sys_dup2,compat_sys_dup2)
 SYSCALL(sys_getppid,sys_getppid,sys_getppid)
 SYSCALL(sys_getpgrp,sys_getpgrp,sys_getpgrp)                   /* 65 */
 SYSCALL(sys_setsid,sys_setsid,sys_setsid)
@@ -80,9 +80,9 @@ NI_SYSCALL                                                    /* old sgetmask syscall*/
 NI_SYSCALL                                                     /* old ssetmask syscall*/
 SYSCALL(sys_setreuid16,sys_ni_syscall,compat_sys_s390_setreuid16) /* old setreuid16 syscall */
 SYSCALL(sys_setregid16,sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */
-SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper)
+SYSCALL(sys_sigsuspend,sys_sigsuspend,compat_sys_sigsuspend)
 SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper)
-SYSCALL(sys_sethostname,sys_sethostname,sys32_sethostname_wrapper)
+SYSCALL(sys_sethostname,sys_sethostname,compat_sys_sethostname)
 SYSCALL(sys_setrlimit,sys_setrlimit,compat_sys_setrlimit_wrapper)      /* 75 */
 SYSCALL(sys_old_getrlimit,sys_getrlimit,compat_sys_old_getrlimit_wrapper)
 SYSCALL(sys_getrusage,sys_getrusage,compat_sys_getrusage)
@@ -91,11 +91,11 @@ SYSCALL(sys_settimeofday,sys_settimeofday,compat_sys_settimeofday_wrapper)
 SYSCALL(sys_getgroups16,sys_ni_syscall,compat_sys_s390_getgroups16)    /* 80 old getgroups16 syscall */
 SYSCALL(sys_setgroups16,sys_ni_syscall,compat_sys_s390_setgroups16)    /* old setgroups16 syscall */
 NI_SYSCALL                                                     /* old select syscall */
-SYSCALL(sys_symlink,sys_symlink,sys32_symlink_wrapper)
+SYSCALL(sys_symlink,sys_symlink,compat_sys_symlink)
 NI_SYSCALL                                                     /* old lstat syscall */
-SYSCALL(sys_readlink,sys_readlink,sys32_readlink_wrapper)      /* 85 */
-SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper)
-SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
+SYSCALL(sys_readlink,sys_readlink,compat_sys_readlink)         /* 85 */
+SYSCALL(sys_uselib,sys_uselib,compat_sys_uselib)
+SYSCALL(sys_swapon,sys_swapon,compat_sys_swapon)
 SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
 SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper)   /* old readdir syscall */
 SYSCALL(sys_old_mmap,sys_old_mmap,compat_sys_s390_old_mmap)    /* 90 */