diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 17:31:11 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:16:09 -0500 |
commit | a31dd96ff7037538dcd98680715e5106e691c26e (patch) | |
tree | 0cfcf11247c6466dce83468f63ea7109100e7e84 /arch/powerpc | |
parent | 0980caea80ffffbaf78112621edd0c3553f44ef0 (diff) |
powerpc: kill pointless wrappers
SYSCALL_DEFINE and COMPAT_SYSCALL_DEFINE do all argument normalization
we need.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/systbl.h | 62 | ||||
-rw-r--r-- | arch/powerpc/kernel/sys_ppc32.c | 301 |
2 files changed, 31 insertions, 332 deletions
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h index 66a21c15e7cb..d906f33441c6 100644 --- a/arch/powerpc/include/asm/systbl.h +++ b/arch/powerpc/include/asm/systbl.h | |||
@@ -10,8 +10,8 @@ SYSCALL_SPU(read) | |||
10 | SYSCALL_SPU(write) | 10 | SYSCALL_SPU(write) |
11 | COMPAT_SYS_SPU(open) | 11 | COMPAT_SYS_SPU(open) |
12 | SYSCALL_SPU(close) | 12 | SYSCALL_SPU(close) |
13 | COMPAT_SYS_SPU(waitpid) | 13 | SYSCALL_SPU(waitpid) |
14 | COMPAT_SYS_SPU(creat) | 14 | SYSCALL_SPU(creat) |
15 | SYSCALL_SPU(link) | 15 | SYSCALL_SPU(link) |
16 | SYSCALL_SPU(unlink) | 16 | SYSCALL_SPU(unlink) |
17 | COMPAT_SYS(execve) | 17 | COMPAT_SYS(execve) |
@@ -36,13 +36,13 @@ SYSCALL(pause) | |||
36 | COMPAT_SYS(utime) | 36 | COMPAT_SYS(utime) |
37 | SYSCALL(ni_syscall) | 37 | SYSCALL(ni_syscall) |
38 | SYSCALL(ni_syscall) | 38 | SYSCALL(ni_syscall) |
39 | COMPAT_SYS_SPU(access) | 39 | SYSCALL_SPU(access) |
40 | COMPAT_SYS_SPU(nice) | 40 | SYSCALL_SPU(nice) |
41 | SYSCALL(ni_syscall) | 41 | SYSCALL(ni_syscall) |
42 | SYSCALL_SPU(sync) | 42 | SYSCALL_SPU(sync) |
43 | COMPAT_SYS_SPU(kill) | 43 | SYSCALL_SPU(kill) |
44 | SYSCALL_SPU(rename) | 44 | SYSCALL_SPU(rename) |
45 | COMPAT_SYS_SPU(mkdir) | 45 | SYSCALL_SPU(mkdir) |
46 | SYSCALL_SPU(rmdir) | 46 | SYSCALL_SPU(rmdir) |
47 | SYSCALL_SPU(dup) | 47 | SYSCALL_SPU(dup) |
48 | SYSCALL_SPU(pipe) | 48 | SYSCALL_SPU(pipe) |
@@ -60,10 +60,10 @@ SYSCALL(ni_syscall) | |||
60 | COMPAT_SYS_SPU(ioctl) | 60 | COMPAT_SYS_SPU(ioctl) |
61 | COMPAT_SYS_SPU(fcntl) | 61 | COMPAT_SYS_SPU(fcntl) |
62 | SYSCALL(ni_syscall) | 62 | SYSCALL(ni_syscall) |
63 | COMPAT_SYS_SPU(setpgid) | 63 | SYSCALL_SPU(setpgid) |
64 | SYSCALL(ni_syscall) | 64 | SYSCALL(ni_syscall) |
65 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) | 65 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) |
66 | COMPAT_SYS_SPU(umask) | 66 | SYSCALL_SPU(umask) |
67 | SYSCALL_SPU(chroot) | 67 | SYSCALL_SPU(chroot) |
68 | COMPAT_SYS(ustat) | 68 | COMPAT_SYS(ustat) |
69 | SYSCALL_SPU(dup2) | 69 | SYSCALL_SPU(dup2) |
@@ -72,24 +72,24 @@ SYSCALL_SPU(getpgrp) | |||
72 | SYSCALL_SPU(setsid) | 72 | SYSCALL_SPU(setsid) |
73 | SYS32ONLY(sigaction) | 73 | SYS32ONLY(sigaction) |
74 | SYSCALL_SPU(sgetmask) | 74 | SYSCALL_SPU(sgetmask) |
75 | COMPAT_SYS_SPU(ssetmask) | 75 | SYSCALL_SPU(ssetmask) |
76 | SYSCALL_SPU(setreuid) | 76 | SYSCALL_SPU(setreuid) |
77 | SYSCALL_SPU(setregid) | 77 | SYSCALL_SPU(setregid) |
78 | #define compat_sys_sigsuspend sys_sigsuspend | 78 | #define compat_sys_sigsuspend sys_sigsuspend |
79 | SYS32ONLY(sigsuspend) | 79 | SYS32ONLY(sigsuspend) |
80 | COMPAT_SYS(sigpending) | 80 | COMPAT_SYS(sigpending) |
81 | COMPAT_SYS_SPU(sethostname) | 81 | SYSCALL_SPU(sethostname) |
82 | COMPAT_SYS_SPU(setrlimit) | 82 | COMPAT_SYS_SPU(setrlimit) |
83 | COMPAT_SYS(old_getrlimit) | 83 | COMPAT_SYS(old_getrlimit) |
84 | COMPAT_SYS_SPU(getrusage) | 84 | COMPAT_SYS_SPU(getrusage) |
85 | COMPAT_SYS_SPU(gettimeofday) | 85 | COMPAT_SYS_SPU(gettimeofday) |
86 | COMPAT_SYS_SPU(settimeofday) | 86 | COMPAT_SYS_SPU(settimeofday) |
87 | COMPAT_SYS_SPU(getgroups) | 87 | SYSCALL_SPU(getgroups) |
88 | COMPAT_SYS_SPU(setgroups) | 88 | SYSCALL_SPU(setgroups) |
89 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) | 89 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) |
90 | SYSCALL_SPU(symlink) | 90 | SYSCALL_SPU(symlink) |
91 | OLDSYS(lstat) | 91 | OLDSYS(lstat) |
92 | COMPAT_SYS_SPU(readlink) | 92 | SYSCALL_SPU(readlink) |
93 | SYSCALL(uselib) | 93 | SYSCALL(uselib) |
94 | SYSCALL(swapon) | 94 | SYSCALL(swapon) |
95 | SYSCALL(reboot) | 95 | SYSCALL(reboot) |
@@ -100,14 +100,14 @@ COMPAT_SYS_SPU(truncate) | |||
100 | COMPAT_SYS_SPU(ftruncate) | 100 | COMPAT_SYS_SPU(ftruncate) |
101 | SYSCALL_SPU(fchmod) | 101 | SYSCALL_SPU(fchmod) |
102 | SYSCALL_SPU(fchown) | 102 | SYSCALL_SPU(fchown) |
103 | COMPAT_SYS_SPU(getpriority) | 103 | SYSCALL_SPU(getpriority) |
104 | COMPAT_SYS_SPU(setpriority) | 104 | SYSCALL_SPU(setpriority) |
105 | SYSCALL(ni_syscall) | 105 | SYSCALL(ni_syscall) |
106 | COMPAT_SYS(statfs) | 106 | COMPAT_SYS(statfs) |
107 | COMPAT_SYS(fstatfs) | 107 | COMPAT_SYS(fstatfs) |
108 | SYSCALL(ni_syscall) | 108 | SYSCALL(ni_syscall) |
109 | COMPAT_SYS_SPU(socketcall) | 109 | COMPAT_SYS_SPU(socketcall) |
110 | COMPAT_SYS_SPU(syslog) | 110 | SYSCALL_SPU(syslog) |
111 | COMPAT_SYS_SPU(setitimer) | 111 | COMPAT_SYS_SPU(setitimer) |
112 | COMPAT_SYS_SPU(getitimer) | 112 | COMPAT_SYS_SPU(getitimer) |
113 | COMPAT_SYS_SPU(newstat) | 113 | COMPAT_SYS_SPU(newstat) |
@@ -125,7 +125,7 @@ COMPAT_SYS(ipc) | |||
125 | SYSCALL_SPU(fsync) | 125 | SYSCALL_SPU(fsync) |
126 | SYS32ONLY(sigreturn) | 126 | SYS32ONLY(sigreturn) |
127 | PPC_SYS(clone) | 127 | PPC_SYS(clone) |
128 | COMPAT_SYS_SPU(setdomainname) | 128 | SYSCALL_SPU(setdomainname) |
129 | SYSCALL_SPU(newuname) | 129 | SYSCALL_SPU(newuname) |
130 | SYSCALL(ni_syscall) | 130 | SYSCALL(ni_syscall) |
131 | COMPAT_SYS_SPU(adjtimex) | 131 | COMPAT_SYS_SPU(adjtimex) |
@@ -136,10 +136,10 @@ SYSCALL(init_module) | |||
136 | SYSCALL(delete_module) | 136 | SYSCALL(delete_module) |
137 | SYSCALL(ni_syscall) | 137 | SYSCALL(ni_syscall) |
138 | SYSCALL(quotactl) | 138 | SYSCALL(quotactl) |
139 | COMPAT_SYS_SPU(getpgid) | 139 | SYSCALL_SPU(getpgid) |
140 | SYSCALL_SPU(fchdir) | 140 | SYSCALL_SPU(fchdir) |
141 | SYSCALL_SPU(bdflush) | 141 | SYSCALL_SPU(bdflush) |
142 | COMPAT_SYS(sysfs) | 142 | SYSCALL_SPU(sysfs) |
143 | SYSX_SPU(ppc64_personality,ppc64_personality,sys_personality) | 143 | SYSX_SPU(ppc64_personality,ppc64_personality,sys_personality) |
144 | SYSCALL(ni_syscall) | 144 | SYSCALL(ni_syscall) |
145 | SYSCALL_SPU(setfsuid) | 145 | SYSCALL_SPU(setfsuid) |
@@ -151,21 +151,21 @@ SYSCALL_SPU(flock) | |||
151 | SYSCALL_SPU(msync) | 151 | SYSCALL_SPU(msync) |
152 | COMPAT_SYS_SPU(readv) | 152 | COMPAT_SYS_SPU(readv) |
153 | COMPAT_SYS_SPU(writev) | 153 | COMPAT_SYS_SPU(writev) |
154 | COMPAT_SYS_SPU(getsid) | 154 | SYSCALL_SPU(getsid) |
155 | SYSCALL_SPU(fdatasync) | 155 | SYSCALL_SPU(fdatasync) |
156 | COMPAT_SYS(sysctl) | 156 | COMPAT_SYS(sysctl) |
157 | SYSCALL_SPU(mlock) | 157 | SYSCALL_SPU(mlock) |
158 | SYSCALL_SPU(munlock) | 158 | SYSCALL_SPU(munlock) |
159 | SYSCALL_SPU(mlockall) | 159 | SYSCALL_SPU(mlockall) |
160 | SYSCALL_SPU(munlockall) | 160 | SYSCALL_SPU(munlockall) |
161 | COMPAT_SYS_SPU(sched_setparam) | 161 | SYSCALL_SPU(sched_setparam) |
162 | COMPAT_SYS_SPU(sched_getparam) | 162 | SYSCALL_SPU(sched_getparam) |
163 | COMPAT_SYS_SPU(sched_setscheduler) | 163 | SYSCALL_SPU(sched_setscheduler) |
164 | COMPAT_SYS_SPU(sched_getscheduler) | 164 | SYSCALL_SPU(sched_getscheduler) |
165 | SYSCALL_SPU(sched_yield) | 165 | SYSCALL_SPU(sched_yield) |
166 | COMPAT_SYS_SPU(sched_get_priority_max) | 166 | SYSCALL_SPU(sched_get_priority_max) |
167 | COMPAT_SYS_SPU(sched_get_priority_min) | 167 | SYSCALL_SPU(sched_get_priority_min) |
168 | SYSX_SPU(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval_wrapper,sys_sched_rr_get_interval) | 168 | COMPAT_SYS_SPU(sched_rr_get_interval) |
169 | COMPAT_SYS_SPU(nanosleep) | 169 | COMPAT_SYS_SPU(nanosleep) |
170 | SYSCALL_SPU(mremap) | 170 | SYSCALL_SPU(mremap) |
171 | SYSCALL_SPU(setresuid) | 171 | SYSCALL_SPU(setresuid) |
@@ -175,7 +175,7 @@ SYSCALL_SPU(poll) | |||
175 | SYSCALL(ni_syscall) | 175 | SYSCALL(ni_syscall) |
176 | SYSCALL_SPU(setresgid) | 176 | SYSCALL_SPU(setresgid) |
177 | SYSCALL_SPU(getresgid) | 177 | SYSCALL_SPU(getresgid) |
178 | COMPAT_SYS_SPU(prctl) | 178 | SYSCALL_SPU(prctl) |
179 | COMPAT_SYS(rt_sigreturn) | 179 | COMPAT_SYS(rt_sigreturn) |
180 | COMPAT_SYS(rt_sigaction) | 180 | COMPAT_SYS(rt_sigaction) |
181 | COMPAT_SYS(rt_sigprocmask) | 181 | COMPAT_SYS(rt_sigprocmask) |
@@ -254,7 +254,7 @@ COMPAT_SYS_SPU(clock_gettime) | |||
254 | COMPAT_SYS_SPU(clock_getres) | 254 | COMPAT_SYS_SPU(clock_getres) |
255 | COMPAT_SYS_SPU(clock_nanosleep) | 255 | COMPAT_SYS_SPU(clock_nanosleep) |
256 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) | 256 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) |
257 | COMPAT_SYS_SPU(tgkill) | 257 | SYSCALL_SPU(tgkill) |
258 | COMPAT_SYS_SPU(utimes) | 258 | COMPAT_SYS_SPU(utimes) |
259 | COMPAT_SYS_SPU(statfs64) | 259 | COMPAT_SYS_SPU(statfs64) |
260 | COMPAT_SYS_SPU(fstatfs64) | 260 | COMPAT_SYS_SPU(fstatfs64) |
@@ -277,8 +277,8 @@ COMPAT_SYS(add_key) | |||
277 | COMPAT_SYS(request_key) | 277 | COMPAT_SYS(request_key) |
278 | COMPAT_SYS(keyctl) | 278 | COMPAT_SYS(keyctl) |
279 | COMPAT_SYS(waitid) | 279 | COMPAT_SYS(waitid) |
280 | COMPAT_SYS(ioprio_set) | 280 | SYSCALL(ioprio_set) |
281 | COMPAT_SYS(ioprio_get) | 281 | SYSCALL(ioprio_get) |
282 | SYSCALL(inotify_init) | 282 | SYSCALL(inotify_init) |
283 | SYSCALL(inotify_add_watch) | 283 | SYSCALL(inotify_add_watch) |
284 | SYSCALL(inotify_rm_watch) | 284 | SYSCALL(inotify_rm_watch) |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index 8a93778ed9f5..dbc44ba5b078 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
@@ -61,16 +61,6 @@ asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp, | |||
61 | return compat_sys_select((int)n, inp, outp, exp, compat_ptr(tvp_x)); | 61 | return compat_sys_select((int)n, inp, outp, exp, compat_ptr(tvp_x)); |
62 | } | 62 | } |
63 | 63 | ||
64 | /* Note: it is necessary to treat option as an unsigned int, | ||
65 | * with the corresponding cast to a signed int to insure that the | ||
66 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
67 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
68 | */ | ||
69 | asmlinkage long compat_sys_sysfs(u32 option, u32 arg1, u32 arg2) | ||
70 | { | ||
71 | return sys_sysfs((int)option, arg1, arg2); | ||
72 | } | ||
73 | |||
74 | #ifdef CONFIG_SYSVIPC | 64 | #ifdef CONFIG_SYSVIPC |
75 | long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, | 65 | long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, |
76 | u32 fifth) | 66 | u32 fifth) |
@@ -156,125 +146,6 @@ asmlinkage long compat_sys_sendfile64_wrapper(u32 out_fd, u32 in_fd, | |||
156 | (off_t __user *)offset, count); | 146 | (off_t __user *)offset, count); |
157 | } | 147 | } |
158 | 148 | ||
159 | /* Note: it is necessary to treat option as an unsigned int, | ||
160 | * with the corresponding cast to a signed int to insure that the | ||
161 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
162 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
163 | */ | ||
164 | asmlinkage long compat_sys_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5) | ||
165 | { | ||
166 | return sys_prctl((int)option, | ||
167 | (unsigned long) arg2, | ||
168 | (unsigned long) arg3, | ||
169 | (unsigned long) arg4, | ||
170 | (unsigned long) arg5); | ||
171 | } | ||
172 | |||
173 | /* Note: it is necessary to treat pid as an unsigned int, | ||
174 | * with the corresponding cast to a signed int to insure that the | ||
175 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
176 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
177 | */ | ||
178 | asmlinkage long compat_sys_sched_rr_get_interval_wrapper(u32 pid, | ||
179 | struct compat_timespec __user *interval) | ||
180 | { | ||
181 | return compat_sys_sched_rr_get_interval((int)pid, interval); | ||
182 | } | ||
183 | |||
184 | /* Note: it is necessary to treat mode as an unsigned int, | ||
185 | * with the corresponding cast to a signed int to insure that the | ||
186 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
187 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
188 | */ | ||
189 | asmlinkage long compat_sys_access(const char __user * filename, u32 mode) | ||
190 | { | ||
191 | return sys_access(filename, (int)mode); | ||
192 | } | ||
193 | |||
194 | |||
195 | /* Note: it is necessary to treat mode as an unsigned int, | ||
196 | * with the corresponding cast to a signed int to insure that the | ||
197 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
198 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
199 | */ | ||
200 | asmlinkage long compat_sys_creat(const char __user * pathname, u32 mode) | ||
201 | { | ||
202 | return sys_creat(pathname, (int)mode); | ||
203 | } | ||
204 | |||
205 | |||
206 | /* Note: it is necessary to treat pid and options as unsigned ints, | ||
207 | * with the corresponding cast to a signed int to insure that the | ||
208 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
209 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
210 | */ | ||
211 | asmlinkage long compat_sys_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options) | ||
212 | { | ||
213 | return sys_waitpid((int)pid, stat_addr, (int)options); | ||
214 | } | ||
215 | |||
216 | |||
217 | /* Note: it is necessary to treat gidsetsize as an unsigned int, | ||
218 | * with the corresponding cast to a signed int to insure that the | ||
219 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
220 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
221 | */ | ||
222 | asmlinkage long compat_sys_getgroups(u32 gidsetsize, gid_t __user *grouplist) | ||
223 | { | ||
224 | return sys_getgroups((int)gidsetsize, grouplist); | ||
225 | } | ||
226 | |||
227 | |||
228 | /* Note: it is necessary to treat pid as an unsigned int, | ||
229 | * with the corresponding cast to a signed int to insure that the | ||
230 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
231 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
232 | */ | ||
233 | asmlinkage long compat_sys_getpgid(u32 pid) | ||
234 | { | ||
235 | return sys_getpgid((int)pid); | ||
236 | } | ||
237 | |||
238 | |||
239 | |||
240 | /* Note: it is necessary to treat pid as an unsigned int, | ||
241 | * with the corresponding cast to a signed int to insure that the | ||
242 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
243 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
244 | */ | ||
245 | asmlinkage long compat_sys_getsid(u32 pid) | ||
246 | { | ||
247 | return sys_getsid((int)pid); | ||
248 | } | ||
249 | |||
250 | |||
251 | /* Note: it is necessary to treat pid and sig as unsigned ints, | ||
252 | * with the corresponding cast to a signed int to insure that the | ||
253 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
254 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
255 | */ | ||
256 | asmlinkage long compat_sys_kill(u32 pid, u32 sig) | ||
257 | { | ||
258 | return sys_kill((int)pid, (int)sig); | ||
259 | } | ||
260 | |||
261 | |||
262 | /* Note: it is necessary to treat mode as an unsigned int, | ||
263 | * with the corresponding cast to a signed int to insure that the | ||
264 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
265 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
266 | */ | ||
267 | asmlinkage long compat_sys_mkdir(const char __user * pathname, u32 mode) | ||
268 | { | ||
269 | return sys_mkdir(pathname, (int)mode); | ||
270 | } | ||
271 | |||
272 | long compat_sys_nice(u32 increment) | ||
273 | { | ||
274 | /* sign extend increment */ | ||
275 | return sys_nice((int)increment); | ||
276 | } | ||
277 | |||
278 | off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin) | 149 | off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin) |
279 | { | 150 | { |
280 | /* sign extend n */ | 151 | /* sign extend n */ |
@@ -293,172 +164,6 @@ long compat_sys_ftruncate(int fd, u32 length) | |||
293 | return sys_ftruncate(fd, (int)length); | 164 | return sys_ftruncate(fd, (int)length); |
294 | } | 165 | } |
295 | 166 | ||
296 | /* Note: it is necessary to treat bufsiz as an unsigned int, | ||
297 | * with the corresponding cast to a signed int to insure that the | ||
298 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
299 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
300 | */ | ||
301 | asmlinkage long compat_sys_readlink(const char __user * path, char __user * buf, u32 bufsiz) | ||
302 | { | ||
303 | return sys_readlink(path, buf, (int)bufsiz); | ||
304 | } | ||
305 | |||
306 | /* Note: it is necessary to treat option as an unsigned int, | ||
307 | * with the corresponding cast to a signed int to insure that the | ||
308 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
309 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
310 | */ | ||
311 | asmlinkage long compat_sys_sched_get_priority_max(u32 policy) | ||
312 | { | ||
313 | return sys_sched_get_priority_max((int)policy); | ||
314 | } | ||
315 | |||
316 | |||
317 | /* Note: it is necessary to treat policy as an unsigned int, | ||
318 | * with the corresponding cast to a signed int to insure that the | ||
319 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
320 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
321 | */ | ||
322 | asmlinkage long compat_sys_sched_get_priority_min(u32 policy) | ||
323 | { | ||
324 | return sys_sched_get_priority_min((int)policy); | ||
325 | } | ||
326 | |||
327 | |||
328 | /* Note: it is necessary to treat pid as an unsigned int, | ||
329 | * with the corresponding cast to a signed int to insure that the | ||
330 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
331 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
332 | */ | ||
333 | asmlinkage long compat_sys_sched_getparam(u32 pid, struct sched_param __user *param) | ||
334 | { | ||
335 | return sys_sched_getparam((int)pid, param); | ||
336 | } | ||
337 | |||
338 | |||
339 | /* Note: it is necessary to treat pid as an unsigned int, | ||
340 | * with the corresponding cast to a signed int to insure that the | ||
341 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
342 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
343 | */ | ||
344 | asmlinkage long compat_sys_sched_getscheduler(u32 pid) | ||
345 | { | ||
346 | return sys_sched_getscheduler((int)pid); | ||
347 | } | ||
348 | |||
349 | |||
350 | /* Note: it is necessary to treat pid as an unsigned int, | ||
351 | * with the corresponding cast to a signed int to insure that the | ||
352 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
353 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
354 | */ | ||
355 | asmlinkage long compat_sys_sched_setparam(u32 pid, struct sched_param __user *param) | ||
356 | { | ||
357 | return sys_sched_setparam((int)pid, param); | ||
358 | } | ||
359 | |||
360 | |||
361 | /* Note: it is necessary to treat pid and policy as unsigned ints, | ||
362 | * with the corresponding cast to a signed int to insure that the | ||
363 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
364 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
365 | */ | ||
366 | asmlinkage long compat_sys_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param) | ||
367 | { | ||
368 | return sys_sched_setscheduler((int)pid, (int)policy, param); | ||
369 | } | ||
370 | |||
371 | |||
372 | /* Note: it is necessary to treat len as an unsigned int, | ||
373 | * with the corresponding cast to a signed int to insure that the | ||
374 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
375 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
376 | */ | ||
377 | asmlinkage long compat_sys_setdomainname(char __user *name, u32 len) | ||
378 | { | ||
379 | return sys_setdomainname(name, (int)len); | ||
380 | } | ||
381 | |||
382 | |||
383 | /* Note: it is necessary to treat gidsetsize as an unsigned int, | ||
384 | * with the corresponding cast to a signed int to insure that the | ||
385 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
386 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
387 | */ | ||
388 | asmlinkage long compat_sys_setgroups(u32 gidsetsize, gid_t __user *grouplist) | ||
389 | { | ||
390 | return sys_setgroups((int)gidsetsize, grouplist); | ||
391 | } | ||
392 | |||
393 | |||
394 | asmlinkage long compat_sys_sethostname(char __user *name, u32 len) | ||
395 | { | ||
396 | /* sign extend len */ | ||
397 | return sys_sethostname(name, (int)len); | ||
398 | } | ||
399 | |||
400 | |||
401 | /* Note: it is necessary to treat pid and pgid as unsigned ints, | ||
402 | * with the corresponding cast to a signed int to insure that the | ||
403 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
404 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
405 | */ | ||
406 | asmlinkage long compat_sys_setpgid(u32 pid, u32 pgid) | ||
407 | { | ||
408 | return sys_setpgid((int)pid, (int)pgid); | ||
409 | } | ||
410 | |||
411 | long compat_sys_getpriority(u32 which, u32 who) | ||
412 | { | ||
413 | /* sign extend which and who */ | ||
414 | return sys_getpriority((int)which, (int)who); | ||
415 | } | ||
416 | |||
417 | long compat_sys_setpriority(u32 which, u32 who, u32 niceval) | ||
418 | { | ||
419 | /* sign extend which, who and niceval */ | ||
420 | return sys_setpriority((int)which, (int)who, (int)niceval); | ||
421 | } | ||
422 | |||
423 | long compat_sys_ioprio_get(u32 which, u32 who) | ||
424 | { | ||
425 | /* sign extend which and who */ | ||
426 | return sys_ioprio_get((int)which, (int)who); | ||
427 | } | ||
428 | |||
429 | long compat_sys_ioprio_set(u32 which, u32 who, u32 ioprio) | ||
430 | { | ||
431 | /* sign extend which, who and ioprio */ | ||
432 | return sys_ioprio_set((int)which, (int)who, (int)ioprio); | ||
433 | } | ||
434 | |||
435 | /* Note: it is necessary to treat newmask as an unsigned int, | ||
436 | * with the corresponding cast to a signed int to insure that the | ||
437 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
438 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
439 | */ | ||
440 | asmlinkage long compat_sys_ssetmask(u32 newmask) | ||
441 | { | ||
442 | return sys_ssetmask((int) newmask); | ||
443 | } | ||
444 | |||
445 | asmlinkage long compat_sys_syslog(u32 type, char __user * buf, u32 len) | ||
446 | { | ||
447 | /* sign extend len */ | ||
448 | return sys_syslog(type, buf, (int)len); | ||
449 | } | ||
450 | |||
451 | |||
452 | /* Note: it is necessary to treat mask as an unsigned int, | ||
453 | * with the corresponding cast to a signed int to insure that the | ||
454 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
455 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
456 | */ | ||
457 | asmlinkage long compat_sys_umask(u32 mask) | ||
458 | { | ||
459 | return sys_umask((int)mask); | ||
460 | } | ||
461 | |||
462 | unsigned long compat_sys_mmap2(unsigned long addr, size_t len, | 167 | unsigned long compat_sys_mmap2(unsigned long addr, size_t len, |
463 | unsigned long prot, unsigned long flags, | 168 | unsigned long prot, unsigned long flags, |
464 | unsigned long fd, unsigned long pgoff) | 169 | unsigned long fd, unsigned long pgoff) |
@@ -467,12 +172,6 @@ unsigned long compat_sys_mmap2(unsigned long addr, size_t len, | |||
467 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); | 172 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); |
468 | } | 173 | } |
469 | 174 | ||
470 | long compat_sys_tgkill(u32 tgid, u32 pid, int sig) | ||
471 | { | ||
472 | /* sign extend tgid, pid */ | ||
473 | return sys_tgkill((int)tgid, (int)pid, sig); | ||
474 | } | ||
475 | |||
476 | /* | 175 | /* |
477 | * long long munging: | 176 | * long long munging: |
478 | * The 32 bit ABI passes long longs in an odd even register pair. | 177 | * The 32 bit ABI passes long longs in an odd even register pair. |