Loading arch/arm/kernel/sys_oabi-compat.c +37 −36 Original line number Diff line number Diff line Loading @@ -193,22 +193,14 @@ struct oabi_flock64 { pid_t l_pid; } __attribute__ ((packed,aligned(4))); asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, static long do_locks(unsigned int fd, unsigned int cmd, unsigned long arg) { struct oabi_flock64 user; struct flock64 kernel; mm_segment_t fs = USER_DS; /* initialized to kill a warning */ unsigned long local_arg = arg; int ret; struct oabi_flock64 user; mm_segment_t fs; long ret; switch (cmd) { case F_OFD_GETLK: case F_OFD_SETLK: case F_OFD_SETLKW: case F_GETLK64: case F_SETLK64: case F_SETLKW64: if (copy_from_user(&user, (struct oabi_flock64 __user *)arg, sizeof(user))) return -EFAULT; Loading @@ -217,16 +209,13 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, kernel.l_start = user.l_start; kernel.l_len = user.l_len; kernel.l_pid = user.l_pid; local_arg = (unsigned long)&kernel; fs = get_fs(); set_fs(KERNEL_DS); } ret = sys_fcntl64(fd, cmd, local_arg); ret = sys_fcntl64(fd, cmd, (unsigned long)&kernel); set_fs(fs); switch (cmd) { case F_GETLK64: if (!ret) { if (!ret && (cmd == F_GETLK64 || cmd == F_OFD_GETLK)) { user.l_type = kernel.l_type; user.l_whence = kernel.l_whence; user.l_start = kernel.l_start; Loading @@ -236,12 +225,24 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, &user, sizeof(user))) ret = -EFAULT; } return ret; } asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg) { switch (cmd) { case F_OFD_GETLK: case F_OFD_SETLK: case F_OFD_SETLKW: case F_GETLK64: case F_SETLK64: case F_SETLKW64: set_fs(fs); } return do_locks(fd, cmd, arg); return ret; default: return sys_fcntl64(fd, cmd, arg); } } struct oabi_epoll_event { Loading Loading
arch/arm/kernel/sys_oabi-compat.c +37 −36 Original line number Diff line number Diff line Loading @@ -193,22 +193,14 @@ struct oabi_flock64 { pid_t l_pid; } __attribute__ ((packed,aligned(4))); asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, static long do_locks(unsigned int fd, unsigned int cmd, unsigned long arg) { struct oabi_flock64 user; struct flock64 kernel; mm_segment_t fs = USER_DS; /* initialized to kill a warning */ unsigned long local_arg = arg; int ret; struct oabi_flock64 user; mm_segment_t fs; long ret; switch (cmd) { case F_OFD_GETLK: case F_OFD_SETLK: case F_OFD_SETLKW: case F_GETLK64: case F_SETLK64: case F_SETLKW64: if (copy_from_user(&user, (struct oabi_flock64 __user *)arg, sizeof(user))) return -EFAULT; Loading @@ -217,16 +209,13 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, kernel.l_start = user.l_start; kernel.l_len = user.l_len; kernel.l_pid = user.l_pid; local_arg = (unsigned long)&kernel; fs = get_fs(); set_fs(KERNEL_DS); } ret = sys_fcntl64(fd, cmd, local_arg); ret = sys_fcntl64(fd, cmd, (unsigned long)&kernel); set_fs(fs); switch (cmd) { case F_GETLK64: if (!ret) { if (!ret && (cmd == F_GETLK64 || cmd == F_OFD_GETLK)) { user.l_type = kernel.l_type; user.l_whence = kernel.l_whence; user.l_start = kernel.l_start; Loading @@ -236,12 +225,24 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, &user, sizeof(user))) ret = -EFAULT; } return ret; } asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg) { switch (cmd) { case F_OFD_GETLK: case F_OFD_SETLK: case F_OFD_SETLKW: case F_GETLK64: case F_SETLK64: case F_SETLKW64: set_fs(fs); } return do_locks(fd, cmd, arg); return ret; default: return sys_fcntl64(fd, cmd, arg); } } struct oabi_epoll_event { Loading