s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 1
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 25 Feb 2014 13:08:39 +0000 (14:08 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 4 Mar 2014 08:05:34 +0000 (09:05 +0100)
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>
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_linux.h
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/syscalls.S

index db02052bd137254c1c6d46314005ed4fce1a6204..9abf84e19d698728ce62e0a351572b04b986605a 100644 (file)
 #define SET_STAT_UID(stat, uid)                (stat).st_uid = high2lowuid(uid)
 #define SET_STAT_GID(stat, gid)                (stat).st_gid = high2lowgid(gid)
 
-asmlinkage long sys32_chown16(const char __user * filename, u16 user, u16 group)
+COMPAT_SYSCALL_DEFINE3(s390_chown16, const char __user *, filename,
+                      u16, user, u16, group)
 {
        return sys_chown(filename, low2highuid(user), low2highgid(group));
 }
 
-asmlinkage long sys32_lchown16(const char __user * filename, u16 user, u16 group)
+COMPAT_SYSCALL_DEFINE3(s390_lchown16, const char __user *,
+                      filename, u16, user, u16, group)
 {
        return sys_lchown(filename, low2highuid(user), low2highgid(group));
 }
 
-asmlinkage long sys32_fchown16(unsigned int fd, u16 user, u16 group)
+COMPAT_SYSCALL_DEFINE3(s390_fchown16, unsigned int, fd, u16, user, u16, group)
 {
        return sys_fchown(fd, low2highuid(user), low2highgid(group));
 }
 
-asmlinkage long sys32_setregid16(u16 rgid, u16 egid)
+COMPAT_SYSCALL_DEFINE2(s390_setregid16, u16, rgid, u16, egid)
 {
        return sys_setregid(low2highgid(rgid), low2highgid(egid));
 }
 
-asmlinkage long sys32_setgid16(u16 gid)
+COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid)
 {
        return sys_setgid((gid_t)gid);
 }
index 1bfda3eca37909988c26564b11398b6b75302c50..161b6c40fa123810f1adf8ac8e037c599f81666f 100644 (file)
@@ -76,11 +76,11 @@ struct stat64_emu31;
 struct mmap_arg_struct_emu31;
 struct fadvise64_64_args;
 
-long sys32_chown16(const char __user * filename, u16 user, u16 group);
-long sys32_lchown16(const char __user * filename, u16 user, u16 group);
-long sys32_fchown16(unsigned int fd, u16 user, u16 group);
-long sys32_setregid16(u16 rgid, u16 egid);
-long sys32_setgid16(u16 gid);
+long compat_sys_s390_chown16(const char __user *filename, u16 user, u16 group);
+long compat_sys_s390_lchown16(const char __user *filename, u16 user, u16 group);
+long compat_sys_s390_fchown16(unsigned int fd, u16 user, u16 group);
+long compat_sys_s390_setregid16(u16 rgid, u16 egid);
+long compat_sys_s390_setgid16(u16 gid);
 long sys32_setreuid16(u16 ruid, u16 euid);
 long sys32_setuid16(u16 uid);
 long sys32_setresuid16(u16 ruid, u16 euid, u16 suid);
index 0248949a756d7765d11a1d39f1568d37e3934406..cc85c7227dc2dad56f857ea3e8daad1cb7b54eea 100644 (file)
@@ -61,12 +61,6 @@ ENTRY(sys32_chmod_wrapper)
        llgfr   %r3,%r3                 # mode_t
        jg      sys_chmod               # branch to system call
 
-ENTRY(sys32_lchown16_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
-       llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t
-       jg      sys32_lchown16          # branch to system call
-
 #sys32_getpid_wrapper                          # void
 
 ENTRY(sys32_mount_wrapper)
@@ -149,10 +143,6 @@ ENTRY(sys32_brk_wrapper)
        llgtr   %r2,%r2                 # unsigned long
        jg      sys_brk                 # branch to system call
 
-ENTRY(sys32_setgid16_wrapper)
-       llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
-       jg      sys32_setgid16          # branch to system call
-
 #sys32_getgid16_wrapper                        # void
 
 ENTRY(sys32_signal_wrapper)
@@ -219,11 +209,6 @@ ENTRY(sys32_setreuid16_wrapper)
        llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
        jg      sys32_setreuid16        # branch to system call
 
-ENTRY(sys32_setregid16_wrapper)
-       llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
-       llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
-       jg      sys32_setregid16        # branch to system call
-
 ENTRY(sys_sigsuspend_wrapper)
        lgfr    %r2,%r2                 # int
        lgfr    %r3,%r3                 # int
@@ -325,12 +310,6 @@ ENTRY(sys32_fchmod_wrapper)
        llgfr   %r3,%r3                 # mode_t
        jg      sys_fchmod              # branch to system call
 
-ENTRY(sys32_fchown16_wrapper)
-       llgfr   %r2,%r2                 # unsigned int
-       llgfr   %r3,%r3                 # compat_uid_t
-       llgfr   %r4,%r4                 # compat_uid_t
-       jg      sys32_fchown16          # branch to system call
-
 ENTRY(sys32_getpriority_wrapper)
        lgfr    %r2,%r2                 # int
        lgfr    %r3,%r3                 # int
@@ -632,12 +611,6 @@ ENTRY(sys32_pwrite64_wrapper)
        llgfr   %r6,%r6                 # u32
        jg      sys32_pwrite64          # branch to system call
 
-ENTRY(sys32_chown16_wrapper)
-       llgtr   %r2,%r2                 # const char *
-       llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
-       llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
-       jg      sys32_chown16           # branch to system call
-
 ENTRY(sys32_getcwd_wrapper)
        llgtr   %r2,%r2                 # char *
        llgfr   %r3,%r3                 # unsigned long
index 143992152ec95d7c2b96c1978d1bae78da480efb..a2986306fbb5d2fc782493ad51858c7c58162822 100644 (file)
@@ -24,7 +24,7 @@ SYSCALL(sys_chdir,sys_chdir,sys32_chdir_wrapper)
 SYSCALL(sys_time,sys_ni_syscall,sys32_time_wrapper)            /* old time syscall */
 SYSCALL(sys_mknod,sys_mknod,sys32_mknod_wrapper)
 SYSCALL(sys_chmod,sys_chmod,sys32_chmod_wrapper)               /* 15 */
-SYSCALL(sys_lchown16,sys_ni_syscall,sys32_lchown16_wrapper)    /* old lchown16 syscall*/
+SYSCALL(sys_lchown16,sys_ni_syscall,compat_sys_s390_lchown16)  /* old lchown16 syscall*/
 NI_SYSCALL                                                     /* old break syscall holder */
 NI_SYSCALL                                                     /* old stat syscall holder */
 SYSCALL(sys_lseek,sys_lseek,compat_sys_lseek)
@@ -54,7 +54,7 @@ SYSCALL(sys_pipe,sys_pipe,sys32_pipe_wrapper)
 SYSCALL(sys_times,sys_times,compat_sys_times_wrapper)
 NI_SYSCALL                                                     /* old prof syscall */
 SYSCALL(sys_brk,sys_brk,sys32_brk_wrapper)                     /* 45 */
-SYSCALL(sys_setgid16,sys_ni_syscall,sys32_setgid16_wrapper)    /* old setgid16 syscall*/
+SYSCALL(sys_setgid16,sys_ni_syscall,compat_sys_s390_setgid16)  /* old setgid16 syscall*/
 SYSCALL(sys_getgid16,sys_ni_syscall,sys32_getgid16)            /* old getgid16 syscall*/
 SYSCALL(sys_signal,sys_signal,sys32_signal_wrapper)
 SYSCALL(sys_geteuid16,sys_ni_syscall,sys32_geteuid16)          /* old geteuid16 syscall */
@@ -79,7 +79,7 @@ SYSCALL(sys_sigaction,sys_sigaction,compat_sys_sigaction)
 NI_SYSCALL                                                     /* old sgetmask syscall*/
 NI_SYSCALL                                                     /* old ssetmask syscall*/
 SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper)        /* old setreuid16 syscall */
-SYSCALL(sys_setregid16,sys_ni_syscall,sys32_setregid16_wrapper)        /* old setregid16 syscall */
+SYSCALL(sys_setregid16,sys_ni_syscall,compat_sys_s390_setregid16) /* old setregid16 syscall */
 SYSCALL(sys_sigsuspend,sys_sigsuspend,sys_sigsuspend_wrapper)
 SYSCALL(sys_sigpending,sys_sigpending,compat_sys_sigpending_wrapper)
 SYSCALL(sys_sethostname,sys_sethostname,sys32_sethostname_wrapper)
@@ -103,7 +103,7 @@ SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper)
 SYSCALL(sys_truncate,sys_truncate,compat_sys_truncate)
 SYSCALL(sys_ftruncate,sys_ftruncate,compat_sys_ftruncate)
 SYSCALL(sys_fchmod,sys_fchmod,sys32_fchmod_wrapper)
-SYSCALL(sys_fchown16,sys_ni_syscall,sys32_fchown16_wrapper)    /* 95 old fchown16 syscall*/
+SYSCALL(sys_fchown16,sys_ni_syscall,compat_sys_s390_fchown16)  /* 95 old fchown16 syscall*/
 SYSCALL(sys_getpriority,sys_getpriority,sys32_getpriority_wrapper)
 SYSCALL(sys_setpriority,sys_setpriority,sys32_setpriority_wrapper)
 NI_SYSCALL                                                     /* old profil syscall */
@@ -190,7 +190,7 @@ SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo)
 SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend)
 SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper)         /* 180 */
 SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper)
-SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper)      /* old chown16 syscall */
+SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16)    /* old chown16 syscall */
 SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
 SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
 SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper)            /* 185 */