aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-01 07:45:03 -0500
committerHeiko Carstens <heiko.carstens@de.ibm.com>2014-03-04 03:12:24 -0500
commitab4f8bba19323eb78b7473df42b225eb14090fcc (patch)
tree2bda879b8d746516dec33d6a12e1c0953b0fa21d /arch/s390/kernel
parent2c81fc4fb41f589454861bbdb90ffde73840b8f8 (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.c134
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
25COMPAT_SYSCALL_WRAP1(exit, int, error_code); 41COMPAT_SYSCALL_WRAP1(exit, int, error_code);
@@ -40,22 +56,22 @@ COMPAT_SYSCALL_WRAP2(mkdir, const char __user *, pathname, umode_t, mode);
40COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname); 56COMPAT_SYSCALL_WRAP1(rmdir, const char __user *, pathname);
41COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes); 57COMPAT_SYSCALL_WRAP1(dup, unsigned int, fildes);
42COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes); 58COMPAT_SYSCALL_WRAP1(pipe, int __user *, fildes);
43COMPAT_SYSCALL_WRAP1(brk, compat_ulong_t, brk); 59COMPAT_SYSCALL_WRAP1(brk, unsigned long, brk);
44COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler); 60COMPAT_SYSCALL_WRAP2(signal, int, sig, __sighandler_t, handler);
45COMPAT_SYSCALL_WRAP1(acct, const char __user *, name); 61COMPAT_SYSCALL_WRAP1(acct, const char __user *, name);
46COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags); 62COMPAT_SYSCALL_WRAP2(umount, char __user *, name, int, flags);
47COMPAT_SYSCALL_WRAP2(setpgid, compat_pid_t, pid, compat_pid_t, pgid); 63COMPAT_SYSCALL_WRAP2(setpgid, pid_t, pid, pid_t, pgid);
48COMPAT_SYSCALL_WRAP1(umask, int, mask); 64COMPAT_SYSCALL_WRAP1(umask, int, mask);
49COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename); 65COMPAT_SYSCALL_WRAP1(chroot, const char __user *, filename);
50COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd); 66COMPAT_SYSCALL_WRAP2(dup2, unsigned int, oldfd, unsigned int, newfd);
51COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, compat_old_sigset_t, mask); 67COMPAT_SYSCALL_WRAP3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask);
52COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len); 68COMPAT_SYSCALL_WRAP2(sethostname, char __user *, name, int, len);
53COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new); 69COMPAT_SYSCALL_WRAP2(symlink, const char __user *, old, const char __user *, new);
54COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz); 70COMPAT_SYSCALL_WRAP3(readlink, const char __user *, path, char __user *, buf, int, bufsiz);
55COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library); 71COMPAT_SYSCALL_WRAP1(uselib, const char __user *, library);
56COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags); 72COMPAT_SYSCALL_WRAP2(swapon, const char __user *, specialfile, int, swap_flags);
57COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg); 73COMPAT_SYSCALL_WRAP4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg);
58COMPAT_SYSCALL_WRAP2(munmap, compat_ulong_t, addr, compat_size_t, len); 74COMPAT_SYSCALL_WRAP2(munmap, unsigned long, addr, size_t, len);
59COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode); 75COMPAT_SYSCALL_WRAP2(fchmod, unsigned int, fd, umode_t, mode);
60COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who); 76COMPAT_SYSCALL_WRAP2(getpriority, int, which, int, who);
61COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval); 77COMPAT_SYSCALL_WRAP3(setpriority, int, which, int, who, int, niceval);
@@ -64,63 +80,63 @@ COMPAT_SYSCALL_WRAP1(swapoff, const char __user *, specialfile);
64COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd); 80COMPAT_SYSCALL_WRAP1(fsync, unsigned int, fd);
65COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len); 81COMPAT_SYSCALL_WRAP2(setdomainname, char __user *, name, int, len);
66COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name); 82COMPAT_SYSCALL_WRAP1(newuname, struct new_utsname __user *, name);
67COMPAT_SYSCALL_WRAP3(mprotect, compat_ulong_t, start, compat_size_t, len, compat_ulong_t, prot); 83COMPAT_SYSCALL_WRAP3(mprotect, unsigned long, start, size_t, len, unsigned long, prot);
68COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, compat_ulong_t, len, const char __user *, uargs); 84COMPAT_SYSCALL_WRAP3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs);
69COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags); 85COMPAT_SYSCALL_WRAP2(delete_module, const char __user *, name_user, unsigned int, flags);
70COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr); 86COMPAT_SYSCALL_WRAP4(quotactl, unsigned int, cmd, const char __user *, special, qid_t, id, void __user *, addr);
71COMPAT_SYSCALL_WRAP1(getpgid, compat_pid_t, pid); 87COMPAT_SYSCALL_WRAP1(getpgid, pid_t, pid);
72COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd); 88COMPAT_SYSCALL_WRAP1(fchdir, unsigned int, fd);
73COMPAT_SYSCALL_WRAP2(bdflush, int, func, compat_long_t, data); 89COMPAT_SYSCALL_WRAP2(bdflush, int, func, long, data);
74COMPAT_SYSCALL_WRAP3(sysfs, int, option, compat_ulong_t, arg1, compat_ulong_t, arg2); 90COMPAT_SYSCALL_WRAP3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2);
75COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality); 91COMPAT_SYSCALL_WRAP1(s390_personality, unsigned int, personality);
76COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, u32, high, u32, low, loff_t __user *, result, unsigned int, whence); 92COMPAT_SYSCALL_WRAP5(llseek, unsigned int, fd, unsigned long, high, unsigned long, low, loff_t __user *, result, unsigned int, whence);
77COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd); 93COMPAT_SYSCALL_WRAP2(flock, unsigned int, fd, unsigned int, cmd);
78COMPAT_SYSCALL_WRAP3(msync, compat_ulong_t, start, compat_size_t, len, int, flags); 94COMPAT_SYSCALL_WRAP3(msync, unsigned long, start, size_t, len, int, flags);
79COMPAT_SYSCALL_WRAP1(getsid, compat_pid_t, pid); 95COMPAT_SYSCALL_WRAP1(getsid, pid_t, pid);
80COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd); 96COMPAT_SYSCALL_WRAP1(fdatasync, unsigned int, fd);
81COMPAT_SYSCALL_WRAP2(mlock, compat_ulong_t, start, compat_size_t, len); 97COMPAT_SYSCALL_WRAP2(mlock, unsigned long, start, size_t, len);
82COMPAT_SYSCALL_WRAP2(munlock, compat_ulong_t, start, compat_size_t, len); 98COMPAT_SYSCALL_WRAP2(munlock, unsigned long, start, size_t, len);
83COMPAT_SYSCALL_WRAP1(mlockall, int, flags); 99COMPAT_SYSCALL_WRAP1(mlockall, int, flags);
84COMPAT_SYSCALL_WRAP2(sched_setparam, compat_pid_t, pid, struct sched_param __user *, param); 100COMPAT_SYSCALL_WRAP2(sched_setparam, pid_t, pid, struct sched_param __user *, param);
85COMPAT_SYSCALL_WRAP2(sched_getparam, compat_pid_t, pid, struct sched_param __user *, param); 101COMPAT_SYSCALL_WRAP2(sched_getparam, pid_t, pid, struct sched_param __user *, param);
86COMPAT_SYSCALL_WRAP3(sched_setscheduler, compat_pid_t, pid, int, policy, struct sched_param __user *, param); 102COMPAT_SYSCALL_WRAP3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param);
87COMPAT_SYSCALL_WRAP1(sched_getscheduler, compat_pid_t, pid); 103COMPAT_SYSCALL_WRAP1(sched_getscheduler, pid_t, pid);
88COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy); 104COMPAT_SYSCALL_WRAP1(sched_get_priority_max, int, policy);
89COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy); 105COMPAT_SYSCALL_WRAP1(sched_get_priority_min, int, policy);
90COMPAT_SYSCALL_WRAP5(mremap, u32, addr, u32, old_len, u32, new_len, u32, flags, u32, new_addr); 106COMPAT_SYSCALL_WRAP5(mremap, unsigned long, addr, unsigned long, old_len, unsigned long, new_len, unsigned long, flags, unsigned long, new_addr);
91COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout); 107COMPAT_SYSCALL_WRAP3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout);
92COMPAT_SYSCALL_WRAP5(prctl, int, option, u32, arg2, u32, arg3, u32, arg4, u32, arg5); 108COMPAT_SYSCALL_WRAP5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, unsigned long, arg4, unsigned long, arg5);
93COMPAT_SYSCALL_WRAP2(getcwd, char __user *, buf, u32, size); 109COMPAT_SYSCALL_WRAP2(getcwd, char __user *, buf, unsigned long, size);
94COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr); 110COMPAT_SYSCALL_WRAP2(capget, cap_user_header_t, header, cap_user_data_t, dataptr);
95COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data); 111COMPAT_SYSCALL_WRAP2(capset, cap_user_header_t, header, const cap_user_data_t, data);
96COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, compat_uid_t, user, compat_gid_t, group); 112COMPAT_SYSCALL_WRAP3(lchown, const char __user *, filename, uid_t, user, gid_t, group);
97COMPAT_SYSCALL_WRAP2(setreuid, compat_uid_t, ruid, compat_uid_t, euid); 113COMPAT_SYSCALL_WRAP2(setreuid, uid_t, ruid, uid_t, euid);
98COMPAT_SYSCALL_WRAP2(setregid, compat_gid_t, rgid, compat_gid_t, egid); 114COMPAT_SYSCALL_WRAP2(setregid, gid_t, rgid, gid_t, egid);
99COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, compat_gid_t __user *, grouplist); 115COMPAT_SYSCALL_WRAP2(getgroups, int, gidsetsize, gid_t __user *, grouplist);
100COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, compat_gid_t __user *, grouplist); 116COMPAT_SYSCALL_WRAP2(setgroups, int, gidsetsize, gid_t __user *, grouplist);
101COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, compat_uid_t, user, compat_gid_t, group); 117COMPAT_SYSCALL_WRAP3(fchown, unsigned int, fd, uid_t, user, gid_t, group);
102COMPAT_SYSCALL_WRAP3(setresuid, compat_uid_t, ruid, compat_uid_t, euid, compat_uid_t, suid); 118COMPAT_SYSCALL_WRAP3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid);
103COMPAT_SYSCALL_WRAP3(getresuid, compat_uid_t __user *, ruid, compat_uid_t __user *, euid, compat_uid_t __user *, suid); 119COMPAT_SYSCALL_WRAP3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid);
104COMPAT_SYSCALL_WRAP3(setresgid, compat_gid_t, rgid, compat_gid_t, egid, compat_gid_t, sgid); 120COMPAT_SYSCALL_WRAP3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid);
105COMPAT_SYSCALL_WRAP3(getresgid, compat_gid_t __user *, rgid, compat_gid_t __user *, egid, compat_gid_t __user *, sgid); 121COMPAT_SYSCALL_WRAP3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid);
106COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, compat_uid_t, user, compat_gid_t, group); 122COMPAT_SYSCALL_WRAP3(chown, const char __user *, filename, uid_t, user, gid_t, group);
107COMPAT_SYSCALL_WRAP1(setuid, compat_uid_t, uid); 123COMPAT_SYSCALL_WRAP1(setuid, uid_t, uid);
108COMPAT_SYSCALL_WRAP1(setgid, compat_gid_t, gid); 124COMPAT_SYSCALL_WRAP1(setgid, gid_t, gid);
109COMPAT_SYSCALL_WRAP1(setfsuid, compat_uid_t, uid); 125COMPAT_SYSCALL_WRAP1(setfsuid, uid_t, uid);
110COMPAT_SYSCALL_WRAP1(setfsgid, compat_gid_t, gid); 126COMPAT_SYSCALL_WRAP1(setfsgid, gid_t, gid);
111COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old); 127COMPAT_SYSCALL_WRAP2(pivot_root, const char __user *, new_root, const char __user *, put_old);
112COMPAT_SYSCALL_WRAP3(mincore, compat_ulong_t, start, compat_size_t, len, unsigned char __user *, vec); 128COMPAT_SYSCALL_WRAP3(mincore, unsigned long, start, size_t, len, unsigned char __user *, vec);
113COMPAT_SYSCALL_WRAP3(madvise, compat_ulong_t, start, compat_size_t, len, int, behavior); 129COMPAT_SYSCALL_WRAP3(madvise, unsigned long, start, size_t, len, int, behavior);
114COMPAT_SYSCALL_WRAP5(setxattr, const char __user *, path, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); 130COMPAT_SYSCALL_WRAP5(setxattr, const char __user *, path, const char __user *, name, const void __user *, value, size_t, size, int, flags);
115COMPAT_SYSCALL_WRAP5(lsetxattr, const char __user *, path, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); 131COMPAT_SYSCALL_WRAP5(lsetxattr, const char __user *, path, const char __user *, name, const void __user *, value, size_t, size, int, flags);
116COMPAT_SYSCALL_WRAP5(fsetxattr, int, fd, const char __user *, name, const void __user *, value, compat_size_t, size, int, flags); 132COMPAT_SYSCALL_WRAP5(fsetxattr, int, fd, const char __user *, name, const void __user *, value, size_t, size, int, flags);
117COMPAT_SYSCALL_WRAP3(getdents64, unsigned int, fd, struct linux_dirent64 __user *, dirent, unsigned int, count); 133COMPAT_SYSCALL_WRAP3(getdents64, unsigned int, fd, struct linux_dirent64 __user *, dirent, unsigned int, count);
118COMPAT_SYSCALL_WRAP4(getxattr, const char __user *, path, const char __user *, name, void __user *, value, compat_size_t, size); 134COMPAT_SYSCALL_WRAP4(getxattr, const char __user *, path, const char __user *, name, void __user *, value, size_t, size);
119COMPAT_SYSCALL_WRAP4(lgetxattr, const char __user *, path, const char __user *, name, void __user *, value, compat_size_t, size); 135COMPAT_SYSCALL_WRAP4(lgetxattr, const char __user *, path, const char __user *, name, void __user *, value, size_t, size);
120COMPAT_SYSCALL_WRAP4(fgetxattr, int, fd, const char __user *, name, void __user *, value, compat_size_t, size); 136COMPAT_SYSCALL_WRAP4(fgetxattr, int, fd, const char __user *, name, void __user *, value, size_t, size);
121COMPAT_SYSCALL_WRAP3(listxattr, const char __user *, path, char __user *, list, compat_size_t, size); 137COMPAT_SYSCALL_WRAP3(listxattr, const char __user *, path, char __user *, list, size_t, size);
122COMPAT_SYSCALL_WRAP3(llistxattr, const char __user *, path, char __user *, list, compat_size_t, size); 138COMPAT_SYSCALL_WRAP3(llistxattr, const char __user *, path, char __user *, list, size_t, size);
123COMPAT_SYSCALL_WRAP3(flistxattr, int, fd, char __user *, list, compat_size_t, size); 139COMPAT_SYSCALL_WRAP3(flistxattr, int, fd, char __user *, list, size_t, size);
124COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name); 140COMPAT_SYSCALL_WRAP2(removexattr, const char __user *, path, const char __user *, name);
125COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name); 141COMPAT_SYSCALL_WRAP2(lremovexattr, const char __user *, path, const char __user *, name);
126COMPAT_SYSCALL_WRAP2(fremovexattr, int, fd, const char __user *, name); 142COMPAT_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
131COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout); 147COMPAT_SYSCALL_WRAP4(epoll_wait, int, epfd, struct epoll_event __user *, events, int, maxevents, int, timeout);
132COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id); 148COMPAT_SYSCALL_WRAP1(timer_getoverrun, timer_t, timer_id);
133COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id); 149COMPAT_SYSCALL_WRAP1(timer_delete, compat_timer_t, compat_timer_id);
134COMPAT_SYSCALL_WRAP1(io_destroy, compat_aio_context_t, ctx); 150COMPAT_SYSCALL_WRAP1(io_destroy, aio_context_t, ctx);
135COMPAT_SYSCALL_WRAP3(io_cancel, compat_aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result); 151COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result);
136COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name); 152COMPAT_SYSCALL_WRAP1(mq_unlink, const char __user *, name);
137COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, compat_size_t, len, key_serial_t, id); 153COMPAT_SYSCALL_WRAP5(add_key, const char __user *, tp, const char __user *, dsc, const void __user *, pld, size_t, len, key_serial_t, id);
138COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id); 154COMPAT_SYSCALL_WRAP4(request_key, const char __user *, tp, const char __user *, dsc, const char __user *, info, key_serial_t, id);
139COMPAT_SYSCALL_WRAP5(remap_file_pages, u32, start, u32, size, u32, prot, u32, pgoff, u32, flags); 155COMPAT_SYSCALL_WRAP5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long, prot, unsigned long, pgoff, unsigned long, flags);
140COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio); 156COMPAT_SYSCALL_WRAP3(ioprio_set, int, which, int, who, int, ioprio);
141COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who); 157COMPAT_SYSCALL_WRAP2(ioprio_get, int, which, int, who);
142COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask); 158COMPAT_SYSCALL_WRAP3(inotify_add_watch, int, fd, const char __user *, path, u32, mask);
143COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd); 159COMPAT_SYSCALL_WRAP2(inotify_rm_watch, int, fd, __s32, wd);
144COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode); 160COMPAT_SYSCALL_WRAP3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode);
145COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev); 161COMPAT_SYSCALL_WRAP4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev);
146COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, compat_uid_t, user, compat_gid_t, group, int, flag); 162COMPAT_SYSCALL_WRAP5(fchownat, int, dfd, const char __user *, filename, uid_t, user, gid_t, group, int, flag);
147COMPAT_SYSCALL_WRAP3(unlinkat, int, dfd, const char __user *, pathname, int, flag); 163COMPAT_SYSCALL_WRAP3(unlinkat, int, dfd, const char __user *, pathname, int, flag);
148COMPAT_SYSCALL_WRAP4(renameat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname); 164COMPAT_SYSCALL_WRAP4(renameat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname);
149COMPAT_SYSCALL_WRAP5(linkat, int, olddfd, const char __user *, oldname, int, newdfd, const char __user *, newname, int, flags); 165COMPAT_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
151COMPAT_SYSCALL_WRAP4(readlinkat, int, dfd, const char __user *, path, char __user *, buf, int, bufsiz); 167COMPAT_SYSCALL_WRAP4(readlinkat, int, dfd, const char __user *, path, char __user *, buf, int, bufsiz);
152COMPAT_SYSCALL_WRAP3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode); 168COMPAT_SYSCALL_WRAP3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode);
153COMPAT_SYSCALL_WRAP3(faccessat, int, dfd, const char __user *, filename, int, mode); 169COMPAT_SYSCALL_WRAP3(faccessat, int, dfd, const char __user *, filename, int, mode);
154COMPAT_SYSCALL_WRAP1(unshare, compat_ulong_t, unshare_flags); 170COMPAT_SYSCALL_WRAP1(unshare, unsigned long, unshare_flags);
155COMPAT_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); 171COMPAT_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);
156COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, compat_size_t, len, unsigned int, flags); 172COMPAT_SYSCALL_WRAP4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags);
157COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache); 173COMPAT_SYSCALL_WRAP3(getcpu, unsigned __user *, cpu, unsigned __user *, node, struct getcpu_cache __user *, cache);
158COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count); 174COMPAT_SYSCALL_WRAP1(eventfd, unsigned int, count);
159COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags); 175COMPAT_SYSCALL_WRAP2(timerfd_create, int, clockid, int, flags);
@@ -164,15 +180,15 @@ COMPAT_SYSCALL_WRAP3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
164COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags); 180COMPAT_SYSCALL_WRAP1(epoll_create1, int, flags);
165COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig); 181COMPAT_SYSCALL_WRAP2(tkill, int, pid, int, sig);
166COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig); 182COMPAT_SYSCALL_WRAP3(tgkill, int, tgid, int, pid, int, sig);
167COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, u32, flags); 183COMPAT_SYSCALL_WRAP5(perf_event_open, struct perf_event_attr __user *, attr_uptr, pid_t, pid, int, cpu, int, group_fd, unsigned long, flags);
168COMPAT_SYSCALL_WRAP5(clone, u32, newsp, u32, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, int, tls_val); 184COMPAT_SYSCALL_WRAP5(clone, unsigned long, newsp, unsigned long, clone_flags, int __user *, parent_tidptr, int __user *, child_tidptr, int, tls_val);
169COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags); 185COMPAT_SYSCALL_WRAP2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags);
170COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim); 186COMPAT_SYSCALL_WRAP4(prlimit64, pid_t, pid, unsigned int, resource, const struct rlimit64 __user *, new_rlim, struct rlimit64 __user *, old_rlim);
171COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag); 187COMPAT_SYSCALL_WRAP5(name_to_handle_at, int, dfd, const char __user *, name, struct file_handle __user *, handle, int __user *, mnt_id, int, flag);
172COMPAT_SYSCALL_WRAP1(syncfs, int, fd); 188COMPAT_SYSCALL_WRAP1(syncfs, int, fd);
173COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype); 189COMPAT_SYSCALL_WRAP2(setns, int, fd, int, nstype);
174COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum); 190COMPAT_SYSCALL_WRAP2(s390_runtime_instr, int, command, int, signum);
175COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, u32, idx1, u32, idx2); 191COMPAT_SYSCALL_WRAP5(kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2);
176COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags); 192COMPAT_SYSCALL_WRAP3(finit_module, int, fd, const char __user *, uargs, int, flags);
177COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags); 193COMPAT_SYSCALL_WRAP3(sched_setattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, flags);
178COMPAT_SYSCALL_WRAP4(sched_getattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, size, unsigned int, flags); 194COMPAT_SYSCALL_WRAP4(sched_getattr, pid_t, pid, struct sched_attr __user *, attr, unsigned int, size, unsigned int, flags);