diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-01 07:45:03 -0500 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2014-03-04 03:12:24 -0500 |
commit | ab4f8bba19323eb78b7473df42b225eb14090fcc (patch) | |
tree | 2bda879b8d746516dec33d6a12e1c0953b0fa21d /arch/s390/kernel | |
parent | 2c81fc4fb41f589454861bbdb90ffde73840b8f8 (diff) |
s390/compat: automatic zero, sign and pointer conversion of syscalls
Instead of explicitly changing compat system call parameters from e.g.
unsigned long to compat_ulong_t let the COMPAT_SYSCALL_WRAP macros
automatically detect (unsigned) long parameters and zero and sign
extend them automatically.
The resulting binary is completely identical.
In addition add a sys_[system call name] prototype for each system call
wrapper. This will cause compile errors if the prototype does not match
the prototype in include/linux/syscall.h.
Therefore we should now always get the correct zero and sign extension
of system call parameters. Pointers are handled like before.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/compat_wrap.c | 134 |
1 files changed, 75 insertions, 59 deletions
diff --git a/arch/s390/kernel/compat_wrap.c b/arch/s390/kernel/compat_wrap.c index 17600b15ae3a..d6a2cac1af12 100644 --- a/arch/s390/kernel/compat_wrap.c +++ b/arch/s390/kernel/compat_wrap.c | |||
@@ -15,11 +15,27 @@ | |||
15 | #define COMPAT_SYSCALL_WRAP6(name, ...) \ | 15 | #define COMPAT_SYSCALL_WRAP6(name, ...) \ |
16 | COMPAT_SYSCALL_WRAPx(6, _##name, __VA_ARGS__) | 16 | COMPAT_SYSCALL_WRAPx(6, _##name, __VA_ARGS__) |
17 | 17 | ||
18 | #define __SC_COMPAT_CAST(t, a) \ | ||
19 | ({ \ | ||
20 | long __ReS = a; \ | ||
21 | \ | ||
22 | BUILD_BUG_ON((sizeof(t) > 4) && !__TYPE_IS_L(t) && \ | ||
23 | !__TYPE_IS_UL(t) && !__TYPE_IS_PTR(t)); \ | ||
24 | if (__TYPE_IS_L(t)) \ | ||
25 | __ReS = (s32)a; \ | ||
26 | if (__TYPE_IS_UL(t)) \ | ||
27 | __ReS = (u32)a; \ | ||
28 | if (__TYPE_IS_PTR(t)) \ | ||
29 | __ReS = a & 0x7fffffff; \ | ||
30 | (t)__ReS; \ | ||
31 | }) | ||
32 | |||
18 | #define COMPAT_SYSCALL_WRAPx(x, name, ...) \ | 33 | #define COMPAT_SYSCALL_WRAPx(x, name, ...) \ |
34 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ | ||
19 | asmlinkage long compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ | 35 | asmlinkage long compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ |
20 | asmlinkage long compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ | 36 | asmlinkage long compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ |
21 | { \ | 37 | { \ |
22 | return sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \ | 38 | return sys##name(__MAP(x,__SC_COMPAT_CAST,__VA_ARGS__)); \ |
23 | } | 39 | } |
24 | 40 | ||
25 | COMPAT_SYSCALL_WRAP1(exit, int, error_code); | 41 | COMPAT_SYSCALL_WRAP1(exit, int, error_code); |
@@ -40,22 +56,22 @@ COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode); | |||
40 | COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); | 56 | COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); |
41 | COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes); | 57 | COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes); |
42 | COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); | 58 | COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); |
43 | COMPAT_SYSCALL_WRAP1(brk, compat_ulong_t, brk); | 59 | COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk); |
44 | COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); | 60 | COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); |
45 | COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); | 61 | COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); |
46 | COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); | 62 | COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); |
47 | COMPAT_SYSCALL_WRAP2(setpgid, compat_pid_t, pid, compat_pid_t, pgid); | 63 | COMPAT_SYSCALL_WRAP2(setpgid, pid_t, pid, pid_t, pgid); |
48 | COMPAT_SYSCALL_WRAP1(umask, int, mask); | 64 | COMPAT_SYSCALL_WRAP1(umask, int, mask); |
49 | COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); | 65 | COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); |
50 | COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd); | 66 | COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd); |
51 | COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, compat_old_sigset_t, mask); | 67 | COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask); |
52 | COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); | 68 | COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); |
53 | COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); | 69 | COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); |
54 | COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz); | 70 | COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz); |
55 | COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library); | 71 | COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library); |
56 | COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); | 72 | COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); |
57 | COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); | 73 | COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); |
58 | COMPAT_SYSCALL_WRAP2(munmap, compat_ulong_t, addr, compat_size_t, len); | 74 | COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len); |
59 | COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode); | 75 | COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode); |
60 | COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who); | 76 | COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who); |
61 | COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval); | 77 | COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval); |
@@ -64,63 +80,63 @@ COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile); | |||
64 | COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd); | 80 | COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd); |
65 | COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); | 81 | COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); |
66 | COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); | 82 | COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); |
67 | COMPAT_SYSCALL_WRAP3(mprotect, compat_ulong_t, start, compat_size_t, len, compat_ulong_t, prot); | 83 | COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot); |
68 | COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, compat_ulong_t, len, const char __user *, uargs); | 84 | COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs); |
69 | COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); | 85 | COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); |
70 | COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); | 86 | COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); |
71 | COMPAT_SYSCALL_WRAP1(getpgid, compat_pid_t, pid); | 87 | COMPAT_SYSCALL_WRAP1(getpgid, pid_t, pid); |
72 | COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd); | 88 | COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd); |
73 | COMPAT_SYSCALL_WRAP2(bdflush, int, func, compat_long_t, data); | 89 | COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data); |
74 | COMPAT_SYSCALL_WRAP3(sysfs, int, option, compat_ulong_t, arg1, compat_ulong_t, arg2); | 90 | COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2); |
75 | COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality); | 91 | COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality); |
76 | COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, u32, high, u32, low, loff_t __user *, result, unsigned int, whence); | 92 | COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence); |
77 | COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd); | 93 | COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd); |
78 | COMPAT_SYSCALL_WRAP3(msync, compat_ulong_t, start, compat_size_t, len, int, flags); | 94 | COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags); |
79 | COMPAT_SYSCALL_WRAP1(getsid, compat_pid_t, pid); | 95 | COMPAT_SYSCALL_WRAP1(getsid, pid_t, pid); |
80 | COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd); | 96 | COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd); |
81 | COMPAT_SYSCALL_WRAP2(mlock, compat_ulong_t, start, compat_size_t, len); | 97 | COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len); |
82 | COMPAT_SYSCALL_WRAP2(munlock, compat_ulong_t, start, compat_size_t, len); | 98 | COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len); |
83 | COMPAT_SYSCALL_WRAP1(mlockall, int, flags); | 99 | COMPAT_SYSCALL_WRAP1(mlockall, int, flags); |
84 | COMPAT_SYSCALL_WRAP2(sched_setparam, compat_pid_t, pid, struct sched_param __user *, param); | 100 | COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param); |
85 | COMPAT_SYSCALL_WRAP2(sched_getparam, compat_pid_t, pid, struct sched_param __user *, param); | 101 | COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param); |
86 | COMPAT_SYSCALL_WRAP3(sched_setscheduler, compat_pid_t, pid, int, policy, struct sched_param __user *, param); | 102 | COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param); |
87 | COMPAT_SYSCALL_WRAP1(sched_getscheduler, compat_pid_t, pid); | 103 | COMPAT_SYSCALL_WRAP1(sched_getscheduler, pid_t, pid); |
88 | COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy); | 104 | COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy); |
89 | COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy); | 105 | COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy); |
90 | COMPAT_SYSCALL_WRAP5(mremap, u32, addr, u32, old_len, u32, new_len, u32, flags, u32, new_addr); | 106 | COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr); |
91 | COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); | 107 | COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); |
92 | COMPAT_SYSCALL_WRAP5(prctl, int, option, u32, arg2, u32, arg3, u32, arg4, u32, arg5); | 108 | COMPAT_SYSCALL_WRAP5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, unsigned long, arg4, unsigned long, arg5); |
93 | COMPAT_SYSCALL_WRAP2(getcwd, char __user *, buf, u32, size); | 109 | COMPAT_SYSCALL_WRAP2(getcwd, char __user *, buf, unsigned long, size); |
94 | COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); | 110 | COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); |
95 | COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); | 111 | COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); |
96 | COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, compat_uid_t, user, compat_gid_t, group); | 112 | COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group); |
97 | COMPAT_SYSCALL_WRAP2(setreuid, compat_uid_t, ruid, compat_uid_t, euid); | 113 | COMPAT_SYSCALL_WRAP2(setreuid, uid_t, ruid, uid_t, euid); |
98 | COMPAT_SYSCALL_WRAP2(setregid, compat_gid_t, rgid, compat_gid_t, egid); | 114 | COMPAT_SYSCALL_WRAP2(setregid, gid_t, rgid, gid_t, egid); |
99 | COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, compat_gid_t __user *, grouplist); | 115 | COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist); |
100 | COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, compat_gid_t __user *, grouplist); | 116 | COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist); |
101 | COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, compat_uid_t, user, compat_gid_t, group); | 117 | COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, uid_t, user, gid_t, group); |
102 | COMPAT_SYSCALL_WRAP3(setresuid, compat_uid_t, ruid, compat_uid_t, euid, compat_uid_t, suid); | 118 | COMPAT_SYSCALL_WRAP3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid); |
103 | COMPAT_SYSCALL_WRAP3(getresuid, compat_uid_t __user *, ruid, compat_uid_t __user *, euid, compat_uid_t __user *, suid); | 119 | COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid); |
104 | COMPAT_SYSCALL_WRAP3(setresgid, compat_gid_t, rgid, compat_gid_t, egid, compat_gid_t, sgid); | 120 | COMPAT_SYSCALL_WRAP3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid); |
105 | COMPAT_SYSCALL_WRAP3(getresgid, compat_gid_t __user *, rgid, compat_gid_t __user *, egid, compat_gid_t __user *, sgid); | 121 | COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid); |
106 | COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, compat_uid_t, user, compat_gid_t, group); | 122 | COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group); |
107 | COMPAT_SYSCALL_WRAP1(setuid, compat_uid_t, uid); | 123 | COMPAT_SYSCALL_WRAP1(setuid, uid_t, uid); |
108 | COMPAT_SYSCALL_WRAP1(setgid, compat_gid_t, gid); | 124 | COMPAT_SYSCALL_WRAP1(setgid, gid_t, gid); |
109 | COMPAT_SYSCALL_WRAP1(setfsuid, compat_uid_t, uid); | 125 | COMPAT_SYSCALL_WRAP1(setfsuid, uid_t, uid); |
110 | COMPAT_SYSCALL_WRAP1(setfsgid, compat_gid_t, gid); | 126 | COMPAT_SYSCALL_WRAP1(setfsgid, gid_t, gid); |
111 | COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); | 127 | COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); |
112 | COMPAT_SYSCALL_WRAP3(mincore, compat_ulong_t, start, compat_size_t, len, unsigned char __user *, vec); | 128 | COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec); |
113 | COMPAT_SYSCALL_WRAP3(madvise, compat_ulong_t, start, compat_size_t, len, int, behavior); | 129 | COMPAT_SYSCALL_WRAP3(madvise, unsigned long, start, size_t, len, int, behavior); |
114 | COMPAT_SYSCALL_WRAP5(setxattr, const char __user *, path, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); | 130 | COMPAT_SYSCALL_WRAP5(setxattr, const char __user *, path, const char __user *, name, const void __user *, value, size_t, size, int, flags); |
115 | COMPAT_SYSCALL_WRAP5(lsetxattr, const char __user *, path, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); | 131 | COMPAT_SYSCALL_WRAP5(lsetxattr, const char __user *, path, const char __user *, name, const void __user *, value, size_t, size, int, flags); |
116 | COMPAT_SYSCALL_WRAP5(fsetxattr, int, fd, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); | 132 | COMPAT_SYSCALL_WRAP5(fsetxattr, int, fd, const char __user *, name, const void __user *, value, size_t, size, int, flags); |
117 | COMPAT_SYSCALL_WRAP3(getdents64, unsigned int, fd, struct linux_dirent64 __user *, dirent, unsigned int, count); | 133 | COMPAT_SYSCALL_WRAP3(getdents64, unsigned int, fd, struct linux_dirent64 __user *, dirent, unsigned int, count); |
118 | COMPAT_SYSCALL_WRAP4(getxattr, const char __user *, path, const char __user *, name, void __user *, value, compat_size_t, size); | 134 | COMPAT_SYSCALL_WRAP4(getxattr, const char __user *, path, const char __user *, name, void __user *, value, size_t, size); |
119 | COMPAT_SYSCALL_WRAP4(lgetxattr, const char __user *, path, const char __user *, name, void __user *, value, compat_size_t, size); | 135 | COMPAT_SYSCALL_WRAP4(lgetxattr, const char __user *, path, const char __user *, name, void __user *, value, size_t, size); |
120 | COMPAT_SYSCALL_WRAP4(fgetxattr, int, fd, const char __user *, name, void __user *, value, compat_size_t, size); | 136 | COMPAT_SYSCALL_WRAP4(fgetxattr, int, fd, const char __user *, name, void __user *, value, size_t, size); |
121 | COMPAT_SYSCALL_WRAP3(listxattr, const char __user *, path, char __user *, list, compat_size_t, size); | 137 | COMPAT_SYSCALL_WRAP3(listxattr, const char __user *, path, char __user *, list, size_t, size); |
122 | COMPAT_SYSCALL_WRAP3(llistxattr, const char __user *, path, char __user *, list, compat_size_t, size); | 138 | COMPAT_SYSCALL_WRAP3(llistxattr, const char __user *, path, char __user *, list, size_t, size); |
123 | COMPAT_SYSCALL_WRAP3(flistxattr, int, fd, char __user *, list, compat_size_t, size); | 139 | COMPAT_SYSCALL_WRAP3(flistxattr, int, fd, char __user *, list, size_t, size); |
124 | COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); | 140 | COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); |
125 | COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); | 141 | COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); |
126 | COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); | 142 | COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); |
@@ -131,19 +147,19 @@ COMPAT_SYSCALL_WRAP4(epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event | |||
131 | COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); | 147 | COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); |
132 | COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id); | 148 | COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id); |
133 | COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id); | 149 | COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id); |
134 | COMPAT_SYSCALL_WRAP1(io_destroy, compat_aio_context_t, ctx); | 150 | COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx); |
135 | COMPAT_SYSCALL_WRAP3(io_cancel, compat_aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); | 151 | COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); |
136 | COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); | 152 | COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); |
137 | COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, compat_size_t, len, key_serial_t, id); | 153 | COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id); |
138 | COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); | 154 | COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); |
139 | COMPAT_SYSCALL_WRAP5(remap_file_pages, u32, start, u32, size, u32, prot, u32, pgoff, u32, flags); | 155 | COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags); |
140 | COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio); | 156 | COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio); |
141 | COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who); | 157 | COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who); |
142 | COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); | 158 | COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); |
143 | COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd); | 159 | COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd); |
144 | COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); | 160 | COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); |
145 | COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); | 161 | COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); |
146 | COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, compat_uid_t, user, compat_gid_t, group, int, flag); | 162 | COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, uid_t, user, gid_t, group, int, flag); |
147 | COMPAT_SYSCALL_WRAP3(unlinkat, int, dfd, const char __user *, pathname, int, flag); | 163 | COMPAT_SYSCALL_WRAP3(unlinkat, int, dfd, const char __user *, pathname, int, flag); |
148 | COMPAT_SYSCALL_WRAP4(renameat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname); | 164 | COMPAT_SYSCALL_WRAP4(renameat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname); |
149 | COMPAT_SYSCALL_WRAP5(linkat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname, int, flags); | 165 | COMPAT_SYSCALL_WRAP5(linkat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname, int, flags); |
@@ -151,9 +167,9 @@ COMPAT_SYSCALL_WRAP3(symlinkat, const char __user *, oldname, int, newdfd, const | |||
151 | COMPAT_SYSCALL_WRAP4(readlinkat, int, dfd, const char __user *, path, char __user *, buf, int, bufsiz); | 167 | COMPAT_SYSCALL_WRAP4(readlinkat, int, dfd, const char __user *, path, char __user *, buf, int, bufsiz); |
152 | COMPAT_SYSCALL_WRAP3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode); | 168 | COMPAT_SYSCALL_WRAP3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode); |
153 | COMPAT_SYSCALL_WRAP3(faccessat, int, dfd, const char __user *, filename, int, mode); | 169 | COMPAT_SYSCALL_WRAP3(faccessat, int, dfd, const char __user *, filename, int, mode); |
154 | COMPAT_SYSCALL_WRAP1(unshare, compat_ulong_t, unshare_flags); | 170 | COMPAT_SYSCALL_WRAP1(unshare, unsigned long, unshare_flags); |
155 | COMPAT_SYSCALL_WRAP6(splice, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, compat_size_t, len, unsigned int, flags); | 171 | COMPAT_SYSCALL_WRAP6(splice, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, size_t, len, unsigned int, flags); |
156 | COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, compat_size_t, len, unsigned int, flags); | 172 | COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags); |
157 | COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); | 173 | COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); |
158 | COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count); | 174 | COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count); |
159 | COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags); | 175 | COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags); |
@@ -164,15 +180,15 @@ COMPAT_SYSCALL_WRAP3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags) | |||
164 | COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags); | 180 | COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags); |
165 | COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig); | 181 | COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig); |
166 | COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig); | 182 | COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig); |
167 | COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, u32, flags); | 183 | COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags); |
168 | COMPAT_SYSCALL_WRAP5(clone, u32, newsp, u32, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, int, tls_val); | 184 | COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, int, tls_val); |
169 | COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags); | 185 | COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags); |
170 | COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); | 186 | COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); |
171 | COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); | 187 | COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); |
172 | COMPAT_SYSCALL_WRAP1(syncfs, int, fd); | 188 | COMPAT_SYSCALL_WRAP1(syncfs, int, fd); |
173 | COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype); | 189 | COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype); |
174 | COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum); | 190 | COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum); |
175 | COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, u32, idx1, u32, idx2); | 191 | COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2); |
176 | COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); | 192 | COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); |
177 | COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags); | 193 | COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags); |
178 | COMPAT_SYSCALL_WRAP4(sched_getattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, size, unsigned int, flags); | 194 | COMPAT_SYSCALL_WRAP4(sched_getattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, size, unsigned int, flags); |