]> git.karo-electronics.de Git - linux-beck.git/commitdiff
s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 5
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 26 Feb 2014 11:51:40 +0000 (12:51 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 4 Mar 2014 08:05:36 +0000 (09:05 +0100)
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 79571343bc759ec057814abcd975c0430fed04a6..08b20c2539daad4da7af600509fb75ec428235fd 100644 (file)
@@ -304,33 +304,30 @@ COMPAT_SYSCALL_DEFINE3(s390_truncate64, const char __user *, path, u32, high, u3
        return sys_truncate(path, (unsigned long)high << 32 | low);
 }
 
-asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low)
+COMPAT_SYSCALL_DEFINE3(s390_ftruncate64, unsigned int, fd, u32, high, u32, low)
 {
-       if ((int)high < 0)
-               return -EINVAL;
-       else
-               return sys_ftruncate(fd, (high << 32) | low);
+       return sys_ftruncate(fd, (unsigned long)high << 32 | low);
 }
 
-asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf,
-                               size_t count, u32 poshi, u32 poslo)
+COMPAT_SYSCALL_DEFINE5(s390_pread64, unsigned int, fd, char __user *, ubuf,
+                      compat_size_t, count, u32, high, u32, low)
 {
        if ((compat_ssize_t) count < 0)
                return -EINVAL;
-       return sys_pread64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo));
+       return sys_pread64(fd, ubuf, count, (unsigned long)high << 32 | low);
 }
 
-asmlinkage long sys32_pwrite64(unsigned int fd, const char __user *ubuf,
-                               size_t count, u32 poshi, u32 poslo)
+COMPAT_SYSCALL_DEFINE5(s390_pwrite64, unsigned int, fd, const char __user *, ubuf,
+                      compat_size_t, count, u32, high, u32, low)
 {
        if ((compat_ssize_t) count < 0)
                return -EINVAL;
-       return sys_pwrite64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo));
+       return sys_pwrite64(fd, ubuf, count, (unsigned long)high << 32 | low);
 }
 
-asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count)
+COMPAT_SYSCALL_DEFINE4(s390_readahead, int, fd, u32, high, u32, low, s32, count)
 {
-       return sys_readahead(fd, ((loff_t)AA(offhi) << 32) | AA(offlo), count);
+       return sys_readahead(fd, (unsigned long)high << 32 | low, count);
 }
 
 struct stat64_emu31 {
@@ -382,7 +379,7 @@ static int cp_stat64(struct stat64_emu31 __user *ubuf, struct kstat *stat)
        return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; 
 }
 
-asmlinkage long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf)
+COMPAT_SYSCALL_DEFINE2(s390_stat64, const char __user *, filename, struct stat64_emu31 __user *, statbuf)
 {
        struct kstat stat;
        int ret = vfs_stat(filename, &stat);
index 3e03325d0e9551e4c8465344dd93cbf65bb725fb..df5f715ed6be23f66b860bb907415aa381a51e39 100644 (file)
@@ -96,16 +96,14 @@ long compat_sys_s390_geteuid16(void);
 long compat_sys_s390_getgid16(void);
 long compat_sys_s390_getegid16(void);
 long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low);
-long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low);
+long compat_sys_s390_ftruncate64(unsigned int fd, u32 high, u32 low);
 long sys32_init_module(void __user *umod, unsigned long len,
                       const char __user *uargs);
 long sys32_delete_module(const char __user *name_user, unsigned int flags);
-long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count,
-                  u32 poshi, u32 poslo);
-long sys32_pwrite64(unsigned int fd, const char __user *ubuf,
-                   size_t count, u32 poshi, u32 poslo);
-compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count);
-long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf);
+long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low);
+long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low);
+long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count);
+long compat_sys_s390_stat64(const char __user *filename, struct stat64_emu31 __user *statbuf);
 long sys32_lstat64(const char __user * filename,
                   struct stat64_emu31 __user * statbuf);
 long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf);
index 9128f7b87e80d9d5f09b1bb6a37f28c72d5a376a..399255de7d48d2ad1bf05a8b83c865b99514e7c1 100644 (file)
@@ -536,22 +536,6 @@ ENTRY(sys32_prctl_wrapper)
 
 #sys32_rt_sigreturn_wrapper            # done in rt_sigreturn_glue
 
-ENTRY(sys32_pread64_wrapper)
-       llgfr   %r2,%r2                 # unsigned int
-       llgtr   %r3,%r3                 # char *
-       llgfr   %r4,%r4                 # size_t
-       llgfr   %r5,%r5                 # u32
-       llgfr   %r6,%r6                 # u32
-       jg      sys32_pread64           # branch to system call
-
-ENTRY(sys32_pwrite64_wrapper)
-       llgfr   %r2,%r2                 # unsigned int
-       llgtr   %r3,%r3                 # const char *
-       llgfr   %r4,%r4                 # size_t
-       llgfr   %r5,%r5                 # u32
-       llgfr   %r6,%r6                 # u32
-       jg      sys32_pwrite64          # branch to system call
-
 ENTRY(sys32_getcwd_wrapper)
        llgtr   %r2,%r2                 # char *
        llgfr   %r3,%r3                 # unsigned long
@@ -569,12 +553,6 @@ ENTRY(sys32_capset_wrapper)
 
 #sys32_vfork_wrapper                   # done in vfork_glue
 
-ENTRY(sys32_ftruncate64_wrapper)
-       llgfr   %r2,%r2                 # unsigned int
-       llgfr   %r3,%r3                 # unsigned long
-       llgfr   %r4,%r4                 # unsigned long
-       jg      sys32_ftruncate64       # branch to system call
-
 ENTRY(sys32_lchown_wrapper)
        llgtr   %r2,%r2                 # const char *
        llgfr   %r3,%r3                 # uid_t
@@ -687,11 +665,6 @@ ENTRY(compat_sys_fcntl64_wrapper)
        llgfr   %r4,%r4                 # unsigned long
        jg      compat_sys_fcntl64      # branch to system call
 
-ENTRY(sys32_stat64_wrapper)
-       llgtr   %r2,%r2                 # char *
-       llgtr   %r3,%r3                 # struct stat64 *
-       jg      sys32_stat64            # branch to system call
-
 ENTRY(sys32_lstat64_wrapper)
        llgtr   %r2,%r2                 # char *
        llgtr   %r3,%r3                 # struct stat64 *
@@ -1201,13 +1174,6 @@ ENTRY(sys_epoll_create1_wrapper)
        lgfr    %r2,%r2                 # int
        jg      sys_epoll_create1       # branch to system call
 
-ENTRY(sys32_readahead_wrapper)
-       lgfr    %r2,%r2                 # int
-       llgfr   %r3,%r3                 # u32
-       llgfr   %r4,%r4                 # u32
-       lgfr    %r5,%r5                 # s32
-       jg      sys32_readahead         # branch to system call
-
 ENTRY(sys_tkill_wrapper)
        lgfr    %r2,%r2                 # pid_t
        lgfr    %r3,%r3                 # int
index fa17cefe40e23d07a2eb9ca35cb5ce1780b3c3fb..8b07ce3ffdf7f54e8083f66b56a77dbf34ebb809 100644 (file)
@@ -188,8 +188,8 @@ SYSCALL(sys_rt_sigpending,sys_rt_sigpending,compat_sys_rt_sigpending)
 SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait)
 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_pread64,sys_pread64,compat_sys_s390_pread64)               /* 180 */
+SYSCALL(sys_pwrite64,sys_pwrite64,compat_sys_s390_pwrite64)
 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)
@@ -202,8 +202,8 @@ SYSCALL(sys_vfork,sys_vfork,sys_vfork)                              /* 190 */
 SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper)
 SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper)
 SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64)
-SYSCALL(sys_ftruncate64,sys_ni_syscall,sys32_ftruncate64_wrapper)
-SYSCALL(sys_stat64,sys_ni_syscall,sys32_stat64_wrapper)                /* 195 */
+SYSCALL(sys_ftruncate64,sys_ni_syscall,compat_sys_s390_ftruncate64)
+SYSCALL(sys_stat64,sys_ni_syscall,compat_sys_s390_stat64)              /* 195 */
 SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper)
 SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper)
 SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper)
@@ -230,7 +230,7 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
 SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
 SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper)        /* 220 */
 SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
-SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
+SYSCALL(sys_readahead,sys_readahead,compat_sys_s390_readahead)
 SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64)
 SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
 SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper)   /* 225 */