提交 26689452 编写于 作者: H Heiko Carstens

[CVE-2009-0029] s390 specific system call wrappers

Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
上级 2b664219
...@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper: ...@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper:
.globl sys32_newuname_wrapper .globl sys32_newuname_wrapper
sys32_newuname_wrapper: sys32_newuname_wrapper:
llgtr %r2,%r2 # struct new_utsname * llgtr %r2,%r2 # struct new_utsname *
jg s390x_newuname # branch to system call jg sys_s390_newuname # branch to system call
.globl compat_sys_adjtimex_wrapper .globl compat_sys_adjtimex_wrapper
compat_sys_adjtimex_wrapper: compat_sys_adjtimex_wrapper:
...@@ -615,7 +615,7 @@ sys32_sysfs_wrapper: ...@@ -615,7 +615,7 @@ sys32_sysfs_wrapper:
.globl sys32_personality_wrapper .globl sys32_personality_wrapper
sys32_personality_wrapper: sys32_personality_wrapper:
llgfr %r2,%r2 # unsigned long llgfr %r2,%r2 # unsigned long
jg s390x_personality # branch to system call jg sys_s390_personality # branch to system call
.globl sys32_setfsuid16_wrapper .globl sys32_setfsuid16_wrapper
sys32_setfsuid16_wrapper: sys32_setfsuid16_wrapper:
......
...@@ -31,21 +31,22 @@ struct old_sigaction; ...@@ -31,21 +31,22 @@ struct old_sigaction;
struct sel_arg_struct; struct sel_arg_struct;
long sys_mmap2(struct mmap_arg_struct __user *arg); long sys_mmap2(struct mmap_arg_struct __user *arg);
long old_mmap(struct mmap_arg_struct __user *arg); long sys_s390_old_mmap(struct mmap_arg_struct __user *arg);
long sys_ipc(uint call, int first, unsigned long second, long sys_ipc(uint call, int first, unsigned long second,
unsigned long third, void __user *ptr); unsigned long third, void __user *ptr);
long s390x_newuname(struct new_utsname __user *name); long sys_s390_newuname(struct new_utsname __user *name);
long s390x_personality(unsigned long personality); long sys_s390_personality(unsigned long personality);
long s390_fadvise64(int fd, u32 offset_high, u32 offset_low, long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
size_t len, int advice); size_t len, int advice);
long s390_fadvise64_64(struct fadvise64_64_args __user *args); long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low); long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
u32 len_low);
long sys_fork(void); long sys_fork(void);
long sys_clone(void); long sys_clone(void);
long sys_vfork(void); long sys_vfork(void);
void execve_tail(void); void execve_tail(void);
long sys_execve(void); long sys_execve(void);
int sys_sigsuspend(int history0, int history1, old_sigset_t mask); long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
long sys_sigaction(int sig, const struct old_sigaction __user *act, long sys_sigaction(int sig, const struct old_sigaction __user *act,
struct old_sigaction __user *oact); struct old_sigaction __user *oact);
long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss); long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <linux/tick.h> #include <linux/tick.h>
#include <linux/elfcore.h> #include <linux/elfcore.h>
#include <linux/kernel_stat.h> #include <linux/kernel_stat.h>
#include <linux/syscalls.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/system.h> #include <asm/system.h>
...@@ -225,13 +226,13 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp, ...@@ -225,13 +226,13 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp,
return 0; return 0;
} }
asmlinkage long sys_fork(void) SYSCALL_DEFINE0(fork)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL); return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL);
} }
asmlinkage long sys_clone(void) SYSCALL_DEFINE0(clone)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
unsigned long clone_flags; unsigned long clone_flags;
...@@ -258,7 +259,7 @@ asmlinkage long sys_clone(void) ...@@ -258,7 +259,7 @@ asmlinkage long sys_clone(void)
* do not have enough call-clobbered registers to hold all * do not have enough call-clobbered registers to hold all
* the information you need. * the information you need.
*/ */
asmlinkage long sys_vfork(void) SYSCALL_DEFINE0(vfork)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
...@@ -278,7 +279,7 @@ asmlinkage void execve_tail(void) ...@@ -278,7 +279,7 @@ asmlinkage void execve_tail(void)
/* /*
* sys_execve() executes a new program. * sys_execve() executes a new program.
*/ */
asmlinkage long sys_execve(void) SYSCALL_DEFINE0(execve)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
char *filename; char *filename;
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/personality.h> #include <linux/personality.h>
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <linux/tracehook.h> #include <linux/tracehook.h>
#include <linux/syscalls.h>
#include <asm/ucontext.h> #include <asm/ucontext.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/lowcore.h> #include <asm/lowcore.h>
...@@ -53,8 +54,7 @@ typedef struct ...@@ -53,8 +54,7 @@ typedef struct
/* /*
* Atomically swap in the new signal mask, and wait for a signal. * Atomically swap in the new signal mask, and wait for a signal.
*/ */
asmlinkage int SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask)
sys_sigsuspend(int history0, int history1, old_sigset_t mask)
{ {
mask &= _BLOCKABLE; mask &= _BLOCKABLE;
spin_lock_irq(&current->sighand->siglock); spin_lock_irq(&current->sighand->siglock);
...@@ -70,9 +70,8 @@ sys_sigsuspend(int history0, int history1, old_sigset_t mask) ...@@ -70,9 +70,8 @@ sys_sigsuspend(int history0, int history1, old_sigset_t mask)
return -ERESTARTNOHAND; return -ERESTARTNOHAND;
} }
asmlinkage long SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act,
sys_sigaction(int sig, const struct old_sigaction __user *act, struct old_sigaction __user *, oact)
struct old_sigaction __user *oact)
{ {
struct k_sigaction new_ka, old_ka; struct k_sigaction new_ka, old_ka;
int ret; int ret;
...@@ -102,15 +101,13 @@ sys_sigaction(int sig, const struct old_sigaction __user *act, ...@@ -102,15 +101,13 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
return ret; return ret;
} }
asmlinkage long SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss,
sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) stack_t __user *, uoss)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
return do_sigaltstack(uss, uoss, regs->gprs[15]); return do_sigaltstack(uss, uoss, regs->gprs[15]);
} }
/* Returns non-zero on fault. */ /* Returns non-zero on fault. */
static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs) static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
{ {
...@@ -164,7 +161,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs) ...@@ -164,7 +161,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
return 0; return 0;
} }
asmlinkage long sys_sigreturn(void) SYSCALL_DEFINE0(sigreturn)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
sigframe __user *frame = (sigframe __user *)regs->gprs[15]; sigframe __user *frame = (sigframe __user *)regs->gprs[15];
...@@ -191,7 +188,7 @@ asmlinkage long sys_sigreturn(void) ...@@ -191,7 +188,7 @@ asmlinkage long sys_sigreturn(void)
return 0; return 0;
} }
asmlinkage long sys_rt_sigreturn(void) SYSCALL_DEFINE0(rt_sigreturn)
{ {
struct pt_regs *regs = task_pt_regs(current); struct pt_regs *regs = task_pt_regs(current);
rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15]; rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15];
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/personality.h> #include <linux/personality.h>
#include <linux/unistd.h> #include <linux/unistd.h>
#include <linux/ipc.h> #include <linux/ipc.h>
#include <linux/syscalls.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include "entry.h" #include "entry.h"
...@@ -74,7 +75,7 @@ struct mmap_arg_struct { ...@@ -74,7 +75,7 @@ struct mmap_arg_struct {
unsigned long offset; unsigned long offset;
}; };
asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg) SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg)
{ {
struct mmap_arg_struct a; struct mmap_arg_struct a;
int error = -EFAULT; int error = -EFAULT;
...@@ -86,7 +87,7 @@ asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg) ...@@ -86,7 +87,7 @@ asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg)
return error; return error;
} }
asmlinkage long old_mmap(struct mmap_arg_struct __user *arg) SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg)
{ {
struct mmap_arg_struct a; struct mmap_arg_struct a;
long error = -EFAULT; long error = -EFAULT;
...@@ -108,8 +109,8 @@ asmlinkage long old_mmap(struct mmap_arg_struct __user *arg) ...@@ -108,8 +109,8 @@ asmlinkage long old_mmap(struct mmap_arg_struct __user *arg)
* *
* This is really horribly ugly. * This is really horribly ugly.
*/ */
asmlinkage long sys_ipc(uint call, int first, unsigned long second, SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second,
unsigned long third, void __user *ptr) unsigned long, third, void __user *, ptr)
{ {
struct ipc_kludge tmp; struct ipc_kludge tmp;
int ret; int ret;
...@@ -175,7 +176,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second, ...@@ -175,7 +176,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second,
} }
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
asmlinkage long s390x_newuname(struct new_utsname __user *name) SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name)
{ {
int ret = sys_newuname(name); int ret = sys_newuname(name);
...@@ -186,7 +187,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name) ...@@ -186,7 +187,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name)
return ret; return ret;
} }
asmlinkage long s390x_personality(unsigned long personality) SYSCALL_DEFINE1(s390_personality, unsigned long, personality)
{ {
int ret; int ret;
...@@ -205,15 +206,13 @@ asmlinkage long s390x_personality(unsigned long personality) ...@@ -205,15 +206,13 @@ asmlinkage long s390x_personality(unsigned long personality)
*/ */
#ifndef CONFIG_64BIT #ifndef CONFIG_64BIT
asmlinkage long SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low,
s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) size_t, len, int, advice)
{ {
return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low, return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low,
len, advice); len, advice);
} }
#endif
struct fadvise64_64_args { struct fadvise64_64_args {
int fd; int fd;
long long offset; long long offset;
...@@ -221,8 +220,7 @@ struct fadvise64_64_args { ...@@ -221,8 +220,7 @@ struct fadvise64_64_args {
int advice; int advice;
}; };
asmlinkage long SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args)
s390_fadvise64_64(struct fadvise64_64_args __user *args)
{ {
struct fadvise64_64_args a; struct fadvise64_64_args a;
...@@ -231,7 +229,6 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args) ...@@ -231,7 +229,6 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice); return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
} }
#ifndef CONFIG_64BIT
/* /*
* This is a wrapper to call sys_fallocate(). For 31 bit s390 the last * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last
* 64 bit argument "len" is split into the upper and lower 32 bits. The * 64 bit argument "len" is split into the upper and lower 32 bits. The
...@@ -244,9 +241,19 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args) ...@@ -244,9 +241,19 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)
* to * to
* %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len
*/ */
asmlinkage long s390_fallocate(int fd, int mode, loff_t offset, SYSCALL_DEFINE(s390_fallocate)(int fd, int mode, loff_t offset,
u32 len_high, u32 len_low) u32 len_high, u32 len_low)
{ {
return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low); return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low);
} }
#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
asmlinkage long SyS_s390_fallocate(long fd, long mode, loff_t offset,
long len_high, long len_low)
{
return SYSC_s390_fallocate((int) fd, (int) mode, offset,
(u32) len_high, (u32) len_low);
}
SYSCALL_ALIAS(sys_s390_fallocate, SyS_s390_fallocate);
#endif
#endif #endif
...@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper) ...@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper)
SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */
SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */ SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */
SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper)
SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper)
SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper)
...@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper) ...@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper)
SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn)
SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */ SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */
SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper)
SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper) SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper)
NI_SYSCALL /* modify_ldt for i386 */ NI_SYSCALL /* modify_ldt for i386 */
SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper)
SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
...@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_getpgid_wrapper) ...@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_getpgid_wrapper)
SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper) SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper)
SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper) SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper)
SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */ SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */
SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper) SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper)
NI_SYSCALL /* for afs_syscall */ NI_SYSCALL /* for afs_syscall */
SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */ SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */
SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */ SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */
...@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper) ...@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper)
SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */
SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper)
SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper)
SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper)
SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper)
SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */
SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper)
...@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 ...@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260
SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
NI_SYSCALL /* reserved for vserver */ NI_SYSCALL /* reserved for vserver */
SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper)
...@@ -322,7 +322,7 @@ NI_SYSCALL /* 310 sys_move_pages */ ...@@ -322,7 +322,7 @@ NI_SYSCALL /* 310 sys_move_pages */
SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper)
SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper)
SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper) SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
NI_SYSCALL /* 317 old sys_timer_fd */ NI_SYSCALL /* 317 old sys_timer_fd */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册