diff options
-rw-r--r-- | arch/powerpc/kernel/entry_64.S | 10 | ||||
-rw-r--r-- | arch/powerpc/kernel/signal_32.c | 28 | ||||
-rw-r--r-- | arch/powerpc/kernel/sys_ppc32.c | 216 | ||||
-rw-r--r-- | arch/powerpc/kernel/systbl.S | 116 | ||||
-rw-r--r-- | arch/ppc64/kernel/entry.S | 10 | ||||
-rw-r--r-- | arch/ppc64/kernel/misc.S | 122 | ||||
-rw-r--r-- | arch/ppc64/kernel/ptrace32.c | 2 |
7 files changed, 195 insertions, 309 deletions
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index 22796e28881a..984a10630714 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -262,7 +262,7 @@ _GLOBAL(save_nvgprs) | |||
262 | */ | 262 | */ |
263 | _GLOBAL(ppc32_sigsuspend) | 263 | _GLOBAL(ppc32_sigsuspend) |
264 | bl .save_nvgprs | 264 | bl .save_nvgprs |
265 | bl .sys32_sigsuspend | 265 | bl .compat_sys_sigsuspend |
266 | b 70f | 266 | b 70f |
267 | 267 | ||
268 | _GLOBAL(ppc64_rt_sigsuspend) | 268 | _GLOBAL(ppc64_rt_sigsuspend) |
@@ -272,7 +272,7 @@ _GLOBAL(ppc64_rt_sigsuspend) | |||
272 | 272 | ||
273 | _GLOBAL(ppc32_rt_sigsuspend) | 273 | _GLOBAL(ppc32_rt_sigsuspend) |
274 | bl .save_nvgprs | 274 | bl .save_nvgprs |
275 | bl .sys32_rt_sigsuspend | 275 | bl .compat_sys_rt_sigsuspend |
276 | 70: cmpdi 0,r3,0 | 276 | 70: cmpdi 0,r3,0 |
277 | /* If it returned an error, we need to return via syscall_exit to set | 277 | /* If it returned an error, we need to return via syscall_exit to set |
278 | the SO bit in cr0 and potentially stop for ptrace. */ | 278 | the SO bit in cr0 and potentially stop for ptrace. */ |
@@ -307,7 +307,7 @@ _GLOBAL(ppc_clone) | |||
307 | 307 | ||
308 | _GLOBAL(ppc32_swapcontext) | 308 | _GLOBAL(ppc32_swapcontext) |
309 | bl .save_nvgprs | 309 | bl .save_nvgprs |
310 | bl .sys32_swapcontext | 310 | bl .compat_sys_swapcontext |
311 | b 80f | 311 | b 80f |
312 | 312 | ||
313 | _GLOBAL(ppc64_swapcontext) | 313 | _GLOBAL(ppc64_swapcontext) |
@@ -316,11 +316,11 @@ _GLOBAL(ppc64_swapcontext) | |||
316 | b 80f | 316 | b 80f |
317 | 317 | ||
318 | _GLOBAL(ppc32_sigreturn) | 318 | _GLOBAL(ppc32_sigreturn) |
319 | bl .sys32_sigreturn | 319 | bl .compat_sys_sigreturn |
320 | b 80f | 320 | b 80f |
321 | 321 | ||
322 | _GLOBAL(ppc32_rt_sigreturn) | 322 | _GLOBAL(ppc32_rt_sigreturn) |
323 | bl .sys32_rt_sigreturn | 323 | bl .compat_sys_rt_sigreturn |
324 | b 80f | 324 | b 80f |
325 | 325 | ||
326 | _GLOBAL(ppc64_rt_sigreturn) | 326 | _GLOBAL(ppc64_rt_sigreturn) |
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c index e53127ec373d..e7e7aac11f89 100644 --- a/arch/powerpc/kernel/signal_32.c +++ b/arch/powerpc/kernel/signal_32.c | |||
@@ -58,12 +58,12 @@ | |||
58 | 58 | ||
59 | #ifdef CONFIG_PPC64 | 59 | #ifdef CONFIG_PPC64 |
60 | #define do_signal do_signal32 | 60 | #define do_signal do_signal32 |
61 | #define sys_sigsuspend sys32_sigsuspend | 61 | #define sys_sigsuspend compat_sys_sigsuspend |
62 | #define sys_rt_sigsuspend sys32_rt_sigsuspend | 62 | #define sys_rt_sigsuspend compat_sys_rt_sigsuspend |
63 | #define sys_rt_sigreturn sys32_rt_sigreturn | 63 | #define sys_rt_sigreturn compat_sys_rt_sigreturn |
64 | #define sys_sigaction sys32_sigaction | 64 | #define sys_sigaction compat_sys_sigaction |
65 | #define sys_swapcontext sys32_swapcontext | 65 | #define sys_swapcontext compat_sys_swapcontext |
66 | #define sys_sigreturn sys32_sigreturn | 66 | #define sys_sigreturn compat_sys_sigreturn |
67 | 67 | ||
68 | #define old_sigaction old_sigaction32 | 68 | #define old_sigaction old_sigaction32 |
69 | #define sigcontext sigcontext32 | 69 | #define sigcontext sigcontext32 |
@@ -540,7 +540,7 @@ static long restore_user_regs(struct pt_regs *regs, | |||
540 | } | 540 | } |
541 | 541 | ||
542 | #ifdef CONFIG_PPC64 | 542 | #ifdef CONFIG_PPC64 |
543 | long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, | 543 | long compat_sys_rt_sigaction(int sig, const struct sigaction32 __user *act, |
544 | struct sigaction32 __user *oact, size_t sigsetsize) | 544 | struct sigaction32 __user *oact, size_t sigsetsize) |
545 | { | 545 | { |
546 | struct k_sigaction new_ka, old_ka; | 546 | struct k_sigaction new_ka, old_ka; |
@@ -577,7 +577,7 @@ long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, | |||
577 | * of a signed int (msr in 32-bit mode) and the register representation | 577 | * of a signed int (msr in 32-bit mode) and the register representation |
578 | * of a signed int (msr in 64-bit mode) is performed. | 578 | * of a signed int (msr in 64-bit mode) is performed. |
579 | */ | 579 | */ |
580 | long sys32_rt_sigprocmask(u32 how, compat_sigset_t __user *set, | 580 | long compat_sys_rt_sigprocmask(u32 how, compat_sigset_t __user *set, |
581 | compat_sigset_t __user *oset, size_t sigsetsize) | 581 | compat_sigset_t __user *oset, size_t sigsetsize) |
582 | { | 582 | { |
583 | sigset_t s; | 583 | sigset_t s; |
@@ -605,7 +605,7 @@ long sys32_rt_sigprocmask(u32 how, compat_sigset_t __user *set, | |||
605 | return 0; | 605 | return 0; |
606 | } | 606 | } |
607 | 607 | ||
608 | long sys32_rt_sigpending(compat_sigset_t __user *set, compat_size_t sigsetsize) | 608 | long compat_sys_rt_sigpending(compat_sigset_t __user *set, compat_size_t sigsetsize) |
609 | { | 609 | { |
610 | sigset_t s; | 610 | sigset_t s; |
611 | int ret; | 611 | int ret; |
@@ -687,7 +687,7 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *d, siginfo_t *s) | |||
687 | * (msr in 32-bit mode) and the register representation of a signed int | 687 | * (msr in 32-bit mode) and the register representation of a signed int |
688 | * (msr in 64-bit mode) is performed. | 688 | * (msr in 64-bit mode) is performed. |
689 | */ | 689 | */ |
690 | long sys32_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo) | 690 | long compat_sys_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo) |
691 | { | 691 | { |
692 | siginfo_t info; | 692 | siginfo_t info; |
693 | int ret; | 693 | int ret; |
@@ -706,10 +706,10 @@ long sys32_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo) | |||
706 | * Start Alternate signal stack support | 706 | * Start Alternate signal stack support |
707 | * | 707 | * |
708 | * System Calls | 708 | * System Calls |
709 | * sigaltatck sys32_sigaltstack | 709 | * sigaltatck compat_sys_sigaltstack |
710 | */ | 710 | */ |
711 | 711 | ||
712 | int sys32_sigaltstack(u32 __new, u32 __old, int r5, | 712 | int compat_sys_sigaltstack(u32 __new, u32 __old, int r5, |
713 | int r6, int r7, int r8, struct pt_regs *regs) | 713 | int r6, int r7, int r8, struct pt_regs *regs) |
714 | { | 714 | { |
715 | stack_32_t __user * newstack = (stack_32_t __user *)(long) __new; | 715 | stack_32_t __user * newstack = (stack_32_t __user *)(long) __new; |
@@ -942,11 +942,11 @@ long sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8, | |||
942 | */ | 942 | */ |
943 | #ifdef CONFIG_PPC64 | 943 | #ifdef CONFIG_PPC64 |
944 | /* | 944 | /* |
945 | * We use the sys32_ version that does the 32/64 bits conversion | 945 | * We use the compat_sys_ version that does the 32/64 bits conversion |
946 | * and takes userland pointer directly. What about error checking ? | 946 | * and takes userland pointer directly. What about error checking ? |
947 | * nobody does any... | 947 | * nobody does any... |
948 | */ | 948 | */ |
949 | sys32_sigaltstack((u32)(u64)&rt_sf->uc.uc_stack, 0, 0, 0, 0, 0, regs); | 949 | compat_sys_sigaltstack((u32)(u64)&rt_sf->uc.uc_stack, 0, 0, 0, 0, 0, regs); |
950 | return (int)regs->result; | 950 | return (int)regs->result; |
951 | #else | 951 | #else |
952 | do_sigaltstack(&rt_sf->uc.uc_stack, NULL, regs->gpr[1]); | 952 | do_sigaltstack(&rt_sf->uc.uc_stack, NULL, regs->gpr[1]); |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index 9babe055356e..501333f89d23 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
@@ -113,96 +113,6 @@ out: | |||
113 | return error; | 113 | return error; |
114 | } | 114 | } |
115 | 115 | ||
116 | struct linux_dirent32 { | ||
117 | u32 d_ino; | ||
118 | u32 d_off; | ||
119 | unsigned short d_reclen; | ||
120 | char d_name[1]; | ||
121 | }; | ||
122 | |||
123 | struct getdents_callback32 { | ||
124 | struct linux_dirent32 __user * current_dir; | ||
125 | struct linux_dirent32 __user * previous; | ||
126 | int count; | ||
127 | int error; | ||
128 | }; | ||
129 | |||
130 | static int filldir(void * __buf, const char * name, int namlen, off_t offset, | ||
131 | ino_t ino, unsigned int d_type) | ||
132 | { | ||
133 | struct linux_dirent32 __user * dirent; | ||
134 | struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf; | ||
135 | int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 2); | ||
136 | |||
137 | buf->error = -EINVAL; /* only used if we fail.. */ | ||
138 | if (reclen > buf->count) | ||
139 | return -EINVAL; | ||
140 | dirent = buf->previous; | ||
141 | if (dirent) { | ||
142 | if (__put_user(offset, &dirent->d_off)) | ||
143 | goto efault; | ||
144 | } | ||
145 | dirent = buf->current_dir; | ||
146 | if (__put_user(ino, &dirent->d_ino)) | ||
147 | goto efault; | ||
148 | if (__put_user(reclen, &dirent->d_reclen)) | ||
149 | goto efault; | ||
150 | if (copy_to_user(dirent->d_name, name, namlen)) | ||
151 | goto efault; | ||
152 | if (__put_user(0, dirent->d_name + namlen)) | ||
153 | goto efault; | ||
154 | if (__put_user(d_type, (char __user *) dirent + reclen - 1)) | ||
155 | goto efault; | ||
156 | buf->previous = dirent; | ||
157 | dirent = (void __user *)dirent + reclen; | ||
158 | buf->current_dir = dirent; | ||
159 | buf->count -= reclen; | ||
160 | return 0; | ||
161 | efault: | ||
162 | buf->error = -EFAULT; | ||
163 | return -EFAULT; | ||
164 | } | ||
165 | |||
166 | asmlinkage long sys32_getdents(unsigned int fd, struct linux_dirent32 __user *dirent, | ||
167 | unsigned int count) | ||
168 | { | ||
169 | struct file * file; | ||
170 | struct linux_dirent32 __user * lastdirent; | ||
171 | struct getdents_callback32 buf; | ||
172 | int error; | ||
173 | |||
174 | error = -EFAULT; | ||
175 | if (!access_ok(VERIFY_WRITE, dirent, count)) | ||
176 | goto out; | ||
177 | |||
178 | error = -EBADF; | ||
179 | file = fget(fd); | ||
180 | if (!file) | ||
181 | goto out; | ||
182 | |||
183 | buf.current_dir = dirent; | ||
184 | buf.previous = NULL; | ||
185 | buf.count = count; | ||
186 | buf.error = 0; | ||
187 | |||
188 | error = vfs_readdir(file, (filldir_t)filldir, &buf); | ||
189 | if (error < 0) | ||
190 | goto out_putf; | ||
191 | error = buf.error; | ||
192 | lastdirent = buf.previous; | ||
193 | if (lastdirent) { | ||
194 | if (put_user(file->f_pos, &lastdirent->d_off)) | ||
195 | error = -EFAULT; | ||
196 | else | ||
197 | error = count - buf.count; | ||
198 | } | ||
199 | |||
200 | out_putf: | ||
201 | fput(file); | ||
202 | out: | ||
203 | return error; | ||
204 | } | ||
205 | |||
206 | asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp, | 116 | asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp, |
207 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | 117 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, |
208 | compat_uptr_t tvp_x) | 118 | compat_uptr_t tvp_x) |
@@ -247,7 +157,7 @@ int cp_compat_stat(struct kstat *stat, struct compat_stat __user *statbuf) | |||
247 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 157 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
248 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 158 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
249 | */ | 159 | */ |
250 | asmlinkage long sys32_sysfs(u32 option, u32 arg1, u32 arg2) | 160 | asmlinkage long compat_sys_sysfs(u32 option, u32 arg1, u32 arg2) |
251 | { | 161 | { |
252 | return sys_sysfs((int)option, arg1, arg2); | 162 | return sys_sysfs((int)option, arg1, arg2); |
253 | } | 163 | } |
@@ -269,7 +179,7 @@ struct timex32 { | |||
269 | extern int do_adjtimex(struct timex *); | 179 | extern int do_adjtimex(struct timex *); |
270 | extern void ppc_adjtimex(void); | 180 | extern void ppc_adjtimex(void); |
271 | 181 | ||
272 | asmlinkage long sys32_adjtimex(struct timex32 __user *utp) | 182 | asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp) |
273 | { | 183 | { |
274 | struct timex txc; | 184 | struct timex txc; |
275 | int ret; | 185 | int ret; |
@@ -328,7 +238,7 @@ asmlinkage long sys32_adjtimex(struct timex32 __user *utp) | |||
328 | return ret; | 238 | return ret; |
329 | } | 239 | } |
330 | 240 | ||
331 | asmlinkage long sys32_pause(void) | 241 | asmlinkage long compat_sys_pause(void) |
332 | { | 242 | { |
333 | current->state = TASK_INTERRUPTIBLE; | 243 | current->state = TASK_INTERRUPTIBLE; |
334 | schedule(); | 244 | schedule(); |
@@ -374,7 +284,7 @@ struct sysinfo32 { | |||
374 | char _f[20-2*sizeof(int)-sizeof(int)]; | 284 | char _f[20-2*sizeof(int)-sizeof(int)]; |
375 | }; | 285 | }; |
376 | 286 | ||
377 | asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info) | 287 | asmlinkage long compat_sys_sysinfo(struct sysinfo32 __user *info) |
378 | { | 288 | { |
379 | struct sysinfo s; | 289 | struct sysinfo s; |
380 | int ret, err; | 290 | int ret, err; |
@@ -431,7 +341,7 @@ asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info) | |||
431 | sorts of things, like timeval and itimerval. */ | 341 | sorts of things, like timeval and itimerval. */ |
432 | extern struct timezone sys_tz; | 342 | extern struct timezone sys_tz; |
433 | 343 | ||
434 | asmlinkage long sys32_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) | 344 | asmlinkage long compat_sys_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) |
435 | { | 345 | { |
436 | if (tv) { | 346 | if (tv) { |
437 | struct timeval ktv; | 347 | struct timeval ktv; |
@@ -449,7 +359,7 @@ asmlinkage long sys32_gettimeofday(struct compat_timeval __user *tv, struct time | |||
449 | 359 | ||
450 | 360 | ||
451 | 361 | ||
452 | asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) | 362 | asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) |
453 | { | 363 | { |
454 | struct timespec kts; | 364 | struct timespec kts; |
455 | struct timezone ktz; | 365 | struct timezone ktz; |
@@ -467,7 +377,7 @@ asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv, struct time | |||
467 | } | 377 | } |
468 | 378 | ||
469 | #ifdef CONFIG_SYSVIPC | 379 | #ifdef CONFIG_SYSVIPC |
470 | long sys32_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, | 380 | long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, |
471 | u32 fifth) | 381 | u32 fifth) |
472 | { | 382 | { |
473 | int version; | 383 | int version; |
@@ -538,7 +448,7 @@ long sys32_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, | |||
538 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 448 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
539 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 449 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
540 | */ | 450 | */ |
541 | asmlinkage long sys32_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offset, u32 count) | 451 | asmlinkage long compat_sys_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offset, u32 count) |
542 | { | 452 | { |
543 | mm_segment_t old_fs = get_fs(); | 453 | mm_segment_t old_fs = get_fs(); |
544 | int ret; | 454 | int ret; |
@@ -560,7 +470,7 @@ asmlinkage long sys32_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offs | |||
560 | return ret; | 470 | return ret; |
561 | } | 471 | } |
562 | 472 | ||
563 | asmlinkage int sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, s32 count) | 473 | asmlinkage int compat_sys_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, s32 count) |
564 | { | 474 | { |
565 | mm_segment_t old_fs = get_fs(); | 475 | mm_segment_t old_fs = get_fs(); |
566 | int ret; | 476 | int ret; |
@@ -582,7 +492,7 @@ asmlinkage int sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *off | |||
582 | return ret; | 492 | return ret; |
583 | } | 493 | } |
584 | 494 | ||
585 | long sys32_execve(unsigned long a0, unsigned long a1, unsigned long a2, | 495 | long compat_sys_execve(unsigned long a0, unsigned long a1, unsigned long a2, |
586 | unsigned long a3, unsigned long a4, unsigned long a5, | 496 | unsigned long a3, unsigned long a4, unsigned long a5, |
587 | struct pt_regs *regs) | 497 | struct pt_regs *regs) |
588 | { | 498 | { |
@@ -614,7 +524,7 @@ out: | |||
614 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 524 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
615 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 525 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
616 | */ | 526 | */ |
617 | asmlinkage long sys32_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5) | 527 | asmlinkage long compat_sys_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5) |
618 | { | 528 | { |
619 | return sys_prctl((int)option, | 529 | return sys_prctl((int)option, |
620 | (unsigned long) arg2, | 530 | (unsigned long) arg2, |
@@ -628,7 +538,7 @@ asmlinkage long sys32_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5) | |||
628 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 538 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
629 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 539 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
630 | */ | 540 | */ |
631 | asmlinkage long sys32_sched_rr_get_interval(u32 pid, struct compat_timespec __user *interval) | 541 | asmlinkage long compat_sys_sched_rr_get_interval(u32 pid, struct compat_timespec __user *interval) |
632 | { | 542 | { |
633 | struct timespec t; | 543 | struct timespec t; |
634 | int ret; | 544 | int ret; |
@@ -643,7 +553,7 @@ asmlinkage long sys32_sched_rr_get_interval(u32 pid, struct compat_timespec __us | |||
643 | return ret; | 553 | return ret; |
644 | } | 554 | } |
645 | 555 | ||
646 | asmlinkage int sys32_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf) | 556 | asmlinkage int compat_sys_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf) |
647 | { | 557 | { |
648 | return sys_pciconfig_read((unsigned long) bus, | 558 | return sys_pciconfig_read((unsigned long) bus, |
649 | (unsigned long) dfn, | 559 | (unsigned long) dfn, |
@@ -652,7 +562,7 @@ asmlinkage int sys32_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf | |||
652 | compat_ptr(ubuf)); | 562 | compat_ptr(ubuf)); |
653 | } | 563 | } |
654 | 564 | ||
655 | asmlinkage int sys32_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf) | 565 | asmlinkage int compat_sys_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf) |
656 | { | 566 | { |
657 | return sys_pciconfig_write((unsigned long) bus, | 567 | return sys_pciconfig_write((unsigned long) bus, |
658 | (unsigned long) dfn, | 568 | (unsigned long) dfn, |
@@ -661,7 +571,7 @@ asmlinkage int sys32_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubu | |||
661 | compat_ptr(ubuf)); | 571 | compat_ptr(ubuf)); |
662 | } | 572 | } |
663 | 573 | ||
664 | asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn) | 574 | asmlinkage int compat_sys_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn) |
665 | { | 575 | { |
666 | return sys_pciconfig_iobase(which, in_bus, in_devfn); | 576 | return sys_pciconfig_iobase(which, in_bus, in_devfn); |
667 | } | 577 | } |
@@ -672,7 +582,7 @@ asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn) | |||
672 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 582 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
673 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 583 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
674 | */ | 584 | */ |
675 | asmlinkage long sys32_access(const char __user * filename, u32 mode) | 585 | asmlinkage long compat_sys_access(const char __user * filename, u32 mode) |
676 | { | 586 | { |
677 | return sys_access(filename, (int)mode); | 587 | return sys_access(filename, (int)mode); |
678 | } | 588 | } |
@@ -683,7 +593,7 @@ asmlinkage long sys32_access(const char __user * filename, u32 mode) | |||
683 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 593 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
684 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 594 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
685 | */ | 595 | */ |
686 | asmlinkage long sys32_creat(const char __user * pathname, u32 mode) | 596 | asmlinkage long compat_sys_creat(const char __user * pathname, u32 mode) |
687 | { | 597 | { |
688 | return sys_creat(pathname, (int)mode); | 598 | return sys_creat(pathname, (int)mode); |
689 | } | 599 | } |
@@ -694,7 +604,7 @@ asmlinkage long sys32_creat(const char __user * pathname, u32 mode) | |||
694 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 604 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
695 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 605 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
696 | */ | 606 | */ |
697 | asmlinkage long sys32_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options) | 607 | asmlinkage long compat_sys_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options) |
698 | { | 608 | { |
699 | return sys_waitpid((int)pid, stat_addr, (int)options); | 609 | return sys_waitpid((int)pid, stat_addr, (int)options); |
700 | } | 610 | } |
@@ -705,7 +615,7 @@ asmlinkage long sys32_waitpid(u32 pid, unsigned int __user * stat_addr, u32 opti | |||
705 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 615 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
706 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 616 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
707 | */ | 617 | */ |
708 | asmlinkage long sys32_getgroups(u32 gidsetsize, gid_t __user *grouplist) | 618 | asmlinkage long compat_sys_getgroups(u32 gidsetsize, gid_t __user *grouplist) |
709 | { | 619 | { |
710 | return sys_getgroups((int)gidsetsize, grouplist); | 620 | return sys_getgroups((int)gidsetsize, grouplist); |
711 | } | 621 | } |
@@ -716,7 +626,7 @@ asmlinkage long sys32_getgroups(u32 gidsetsize, gid_t __user *grouplist) | |||
716 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 626 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
717 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 627 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
718 | */ | 628 | */ |
719 | asmlinkage long sys32_getpgid(u32 pid) | 629 | asmlinkage long compat_sys_getpgid(u32 pid) |
720 | { | 630 | { |
721 | return sys_getpgid((int)pid); | 631 | return sys_getpgid((int)pid); |
722 | } | 632 | } |
@@ -728,7 +638,7 @@ asmlinkage long sys32_getpgid(u32 pid) | |||
728 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 638 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
729 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 639 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
730 | */ | 640 | */ |
731 | asmlinkage long sys32_getsid(u32 pid) | 641 | asmlinkage long compat_sys_getsid(u32 pid) |
732 | { | 642 | { |
733 | return sys_getsid((int)pid); | 643 | return sys_getsid((int)pid); |
734 | } | 644 | } |
@@ -739,7 +649,7 @@ asmlinkage long sys32_getsid(u32 pid) | |||
739 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 649 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
740 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 650 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
741 | */ | 651 | */ |
742 | asmlinkage long sys32_kill(u32 pid, u32 sig) | 652 | asmlinkage long compat_sys_kill(u32 pid, u32 sig) |
743 | { | 653 | { |
744 | return sys_kill((int)pid, (int)sig); | 654 | return sys_kill((int)pid, (int)sig); |
745 | } | 655 | } |
@@ -750,12 +660,12 @@ asmlinkage long sys32_kill(u32 pid, u32 sig) | |||
750 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 660 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
751 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 661 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
752 | */ | 662 | */ |
753 | asmlinkage long sys32_mkdir(const char __user * pathname, u32 mode) | 663 | asmlinkage long compat_sys_mkdir(const char __user * pathname, u32 mode) |
754 | { | 664 | { |
755 | return sys_mkdir(pathname, (int)mode); | 665 | return sys_mkdir(pathname, (int)mode); |
756 | } | 666 | } |
757 | 667 | ||
758 | long sys32_nice(u32 increment) | 668 | long compat_sys_nice(u32 increment) |
759 | { | 669 | { |
760 | /* sign extend increment */ | 670 | /* sign extend increment */ |
761 | return sys_nice((int)increment); | 671 | return sys_nice((int)increment); |
@@ -772,7 +682,7 @@ off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin) | |||
772 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 682 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
773 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 683 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
774 | */ | 684 | */ |
775 | asmlinkage long sys32_readlink(const char __user * path, char __user * buf, u32 bufsiz) | 685 | asmlinkage long compat_sys_readlink(const char __user * path, char __user * buf, u32 bufsiz) |
776 | { | 686 | { |
777 | return sys_readlink(path, buf, (int)bufsiz); | 687 | return sys_readlink(path, buf, (int)bufsiz); |
778 | } | 688 | } |
@@ -782,7 +692,7 @@ asmlinkage long sys32_readlink(const char __user * path, char __user * buf, u32 | |||
782 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 692 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
783 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 693 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
784 | */ | 694 | */ |
785 | asmlinkage long sys32_sched_get_priority_max(u32 policy) | 695 | asmlinkage long compat_sys_sched_get_priority_max(u32 policy) |
786 | { | 696 | { |
787 | return sys_sched_get_priority_max((int)policy); | 697 | return sys_sched_get_priority_max((int)policy); |
788 | } | 698 | } |
@@ -793,7 +703,7 @@ asmlinkage long sys32_sched_get_priority_max(u32 policy) | |||
793 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 703 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
794 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 704 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
795 | */ | 705 | */ |
796 | asmlinkage long sys32_sched_get_priority_min(u32 policy) | 706 | asmlinkage long compat_sys_sched_get_priority_min(u32 policy) |
797 | { | 707 | { |
798 | return sys_sched_get_priority_min((int)policy); | 708 | return sys_sched_get_priority_min((int)policy); |
799 | } | 709 | } |
@@ -804,7 +714,7 @@ asmlinkage long sys32_sched_get_priority_min(u32 policy) | |||
804 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 714 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
805 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 715 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
806 | */ | 716 | */ |
807 | asmlinkage long sys32_sched_getparam(u32 pid, struct sched_param __user *param) | 717 | asmlinkage long compat_sys_sched_getparam(u32 pid, struct sched_param __user *param) |
808 | { | 718 | { |
809 | return sys_sched_getparam((int)pid, param); | 719 | return sys_sched_getparam((int)pid, param); |
810 | } | 720 | } |
@@ -815,7 +725,7 @@ asmlinkage long sys32_sched_getparam(u32 pid, struct sched_param __user *param) | |||
815 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 725 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
816 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 726 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
817 | */ | 727 | */ |
818 | asmlinkage long sys32_sched_getscheduler(u32 pid) | 728 | asmlinkage long compat_sys_sched_getscheduler(u32 pid) |
819 | { | 729 | { |
820 | return sys_sched_getscheduler((int)pid); | 730 | return sys_sched_getscheduler((int)pid); |
821 | } | 731 | } |
@@ -826,7 +736,7 @@ asmlinkage long sys32_sched_getscheduler(u32 pid) | |||
826 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 736 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
827 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 737 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
828 | */ | 738 | */ |
829 | asmlinkage long sys32_sched_setparam(u32 pid, struct sched_param __user *param) | 739 | asmlinkage long compat_sys_sched_setparam(u32 pid, struct sched_param __user *param) |
830 | { | 740 | { |
831 | return sys_sched_setparam((int)pid, param); | 741 | return sys_sched_setparam((int)pid, param); |
832 | } | 742 | } |
@@ -837,7 +747,7 @@ asmlinkage long sys32_sched_setparam(u32 pid, struct sched_param __user *param) | |||
837 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 747 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
838 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 748 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
839 | */ | 749 | */ |
840 | asmlinkage long sys32_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param) | 750 | asmlinkage long compat_sys_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param) |
841 | { | 751 | { |
842 | return sys_sched_setscheduler((int)pid, (int)policy, param); | 752 | return sys_sched_setscheduler((int)pid, (int)policy, param); |
843 | } | 753 | } |
@@ -848,7 +758,7 @@ asmlinkage long sys32_sched_setscheduler(u32 pid, u32 policy, struct sched_param | |||
848 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 758 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
849 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 759 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
850 | */ | 760 | */ |
851 | asmlinkage long sys32_setdomainname(char __user *name, u32 len) | 761 | asmlinkage long compat_sys_setdomainname(char __user *name, u32 len) |
852 | { | 762 | { |
853 | return sys_setdomainname(name, (int)len); | 763 | return sys_setdomainname(name, (int)len); |
854 | } | 764 | } |
@@ -859,13 +769,13 @@ asmlinkage long sys32_setdomainname(char __user *name, u32 len) | |||
859 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 769 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
860 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 770 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
861 | */ | 771 | */ |
862 | asmlinkage long sys32_setgroups(u32 gidsetsize, gid_t __user *grouplist) | 772 | asmlinkage long compat_sys_setgroups(u32 gidsetsize, gid_t __user *grouplist) |
863 | { | 773 | { |
864 | return sys_setgroups((int)gidsetsize, grouplist); | 774 | return sys_setgroups((int)gidsetsize, grouplist); |
865 | } | 775 | } |
866 | 776 | ||
867 | 777 | ||
868 | asmlinkage long sys32_sethostname(char __user *name, u32 len) | 778 | asmlinkage long compat_sys_sethostname(char __user *name, u32 len) |
869 | { | 779 | { |
870 | /* sign extend len */ | 780 | /* sign extend len */ |
871 | return sys_sethostname(name, (int)len); | 781 | return sys_sethostname(name, (int)len); |
@@ -877,30 +787,30 @@ asmlinkage long sys32_sethostname(char __user *name, u32 len) | |||
877 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 787 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
878 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 788 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
879 | */ | 789 | */ |
880 | asmlinkage long sys32_setpgid(u32 pid, u32 pgid) | 790 | asmlinkage long compat_sys_setpgid(u32 pid, u32 pgid) |
881 | { | 791 | { |
882 | return sys_setpgid((int)pid, (int)pgid); | 792 | return sys_setpgid((int)pid, (int)pgid); |
883 | } | 793 | } |
884 | 794 | ||
885 | long sys32_getpriority(u32 which, u32 who) | 795 | long compat_sys_getpriority(u32 which, u32 who) |
886 | { | 796 | { |
887 | /* sign extend which and who */ | 797 | /* sign extend which and who */ |
888 | return sys_getpriority((int)which, (int)who); | 798 | return sys_getpriority((int)which, (int)who); |
889 | } | 799 | } |
890 | 800 | ||
891 | long sys32_setpriority(u32 which, u32 who, u32 niceval) | 801 | long compat_sys_setpriority(u32 which, u32 who, u32 niceval) |
892 | { | 802 | { |
893 | /* sign extend which, who and niceval */ | 803 | /* sign extend which, who and niceval */ |
894 | return sys_setpriority((int)which, (int)who, (int)niceval); | 804 | return sys_setpriority((int)which, (int)who, (int)niceval); |
895 | } | 805 | } |
896 | 806 | ||
897 | long sys32_ioprio_get(u32 which, u32 who) | 807 | long compat_sys_ioprio_get(u32 which, u32 who) |
898 | { | 808 | { |
899 | /* sign extend which and who */ | 809 | /* sign extend which and who */ |
900 | return sys_ioprio_get((int)which, (int)who); | 810 | return sys_ioprio_get((int)which, (int)who); |
901 | } | 811 | } |
902 | 812 | ||
903 | long sys32_ioprio_set(u32 which, u32 who, u32 ioprio) | 813 | long compat_sys_ioprio_set(u32 which, u32 who, u32 ioprio) |
904 | { | 814 | { |
905 | /* sign extend which, who and ioprio */ | 815 | /* sign extend which, who and ioprio */ |
906 | return sys_ioprio_set((int)which, (int)who, (int)ioprio); | 816 | return sys_ioprio_set((int)which, (int)who, (int)ioprio); |
@@ -911,12 +821,12 @@ long sys32_ioprio_set(u32 which, u32 who, u32 ioprio) | |||
911 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 821 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
912 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 822 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
913 | */ | 823 | */ |
914 | asmlinkage long sys32_ssetmask(u32 newmask) | 824 | asmlinkage long compat_sys_ssetmask(u32 newmask) |
915 | { | 825 | { |
916 | return sys_ssetmask((int) newmask); | 826 | return sys_ssetmask((int) newmask); |
917 | } | 827 | } |
918 | 828 | ||
919 | asmlinkage long sys32_syslog(u32 type, char __user * buf, u32 len) | 829 | asmlinkage long compat_sys_syslog(u32 type, char __user * buf, u32 len) |
920 | { | 830 | { |
921 | /* sign extend len */ | 831 | /* sign extend len */ |
922 | return sys_syslog(type, buf, (int)len); | 832 | return sys_syslog(type, buf, (int)len); |
@@ -928,7 +838,7 @@ asmlinkage long sys32_syslog(u32 type, char __user * buf, u32 len) | |||
928 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | 838 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) |
929 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | 839 | * and the register representation of a signed int (msr in 64-bit mode) is performed. |
930 | */ | 840 | */ |
931 | asmlinkage long sys32_umask(u32 mask) | 841 | asmlinkage long compat_sys_umask(u32 mask) |
932 | { | 842 | { |
933 | return sys_umask((int)mask); | 843 | return sys_umask((int)mask); |
934 | } | 844 | } |
@@ -944,7 +854,7 @@ struct __sysctl_args32 { | |||
944 | u32 __unused[4]; | 854 | u32 __unused[4]; |
945 | }; | 855 | }; |
946 | 856 | ||
947 | asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args) | 857 | asmlinkage long compat_sys_sysctl(struct __sysctl_args32 __user *args) |
948 | { | 858 | { |
949 | struct __sysctl_args32 tmp; | 859 | struct __sysctl_args32 tmp; |
950 | int error; | 860 | int error; |
@@ -985,7 +895,7 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args) | |||
985 | } | 895 | } |
986 | #endif | 896 | #endif |
987 | 897 | ||
988 | unsigned long sys32_mmap2(unsigned long addr, size_t len, | 898 | unsigned long compat_sys_mmap2(unsigned long addr, size_t len, |
989 | unsigned long prot, unsigned long flags, | 899 | unsigned long prot, unsigned long flags, |
990 | unsigned long fd, unsigned long pgoff) | 900 | unsigned long fd, unsigned long pgoff) |
991 | { | 901 | { |
@@ -993,29 +903,7 @@ unsigned long sys32_mmap2(unsigned long addr, size_t len, | |||
993 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); | 903 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); |
994 | } | 904 | } |
995 | 905 | ||
996 | int get_compat_timeval(struct timeval *tv, struct compat_timeval __user *ctv) | 906 | long compat_sys_tgkill(u32 tgid, u32 pid, int sig) |
997 | { | ||
998 | return (!access_ok(VERIFY_READ, ctv, sizeof(*ctv)) || | ||
999 | __get_user(tv->tv_sec, &ctv->tv_sec) || | ||
1000 | __get_user(tv->tv_usec, &ctv->tv_usec)) ? -EFAULT : 0; | ||
1001 | } | ||
1002 | |||
1003 | asmlinkage long sys32_utimes(char __user *filename, struct compat_timeval __user *tvs) | ||
1004 | { | ||
1005 | struct timeval ktvs[2], *ptr; | ||
1006 | |||
1007 | ptr = NULL; | ||
1008 | if (tvs) { | ||
1009 | if (get_compat_timeval(&ktvs[0], &tvs[0]) || | ||
1010 | get_compat_timeval(&ktvs[1], &tvs[1])) | ||
1011 | return -EFAULT; | ||
1012 | ptr = ktvs; | ||
1013 | } | ||
1014 | |||
1015 | return do_utimes(filename, ptr); | ||
1016 | } | ||
1017 | |||
1018 | long sys32_tgkill(u32 tgid, u32 pid, int sig) | ||
1019 | { | 907 | { |
1020 | /* sign extend tgid, pid */ | 908 | /* sign extend tgid, pid */ |
1021 | return sys_tgkill((int)tgid, (int)pid, sig); | 909 | return sys_tgkill((int)tgid, (int)pid, sig); |
@@ -1026,30 +914,30 @@ long sys32_tgkill(u32 tgid, u32 pid, int sig) | |||
1026 | * The 32 bit ABI passes long longs in an odd even register pair. | 914 | * The 32 bit ABI passes long longs in an odd even register pair. |
1027 | */ | 915 | */ |
1028 | 916 | ||
1029 | compat_ssize_t sys32_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, | 917 | compat_ssize_t compat_sys_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, |
1030 | u32 reg6, u32 poshi, u32 poslo) | 918 | u32 reg6, u32 poshi, u32 poslo) |
1031 | { | 919 | { |
1032 | return sys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); | 920 | return sys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); |
1033 | } | 921 | } |
1034 | 922 | ||
1035 | compat_ssize_t sys32_pwrite64(unsigned int fd, char __user *ubuf, compat_size_t count, | 923 | compat_ssize_t compat_sys_pwrite64(unsigned int fd, char __user *ubuf, compat_size_t count, |
1036 | u32 reg6, u32 poshi, u32 poslo) | 924 | u32 reg6, u32 poshi, u32 poslo) |
1037 | { | 925 | { |
1038 | return sys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); | 926 | return sys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); |
1039 | } | 927 | } |
1040 | 928 | ||
1041 | compat_ssize_t sys32_readahead(int fd, u32 r4, u32 offhi, u32 offlo, u32 count) | 929 | compat_ssize_t compat_sys_readahead(int fd, u32 r4, u32 offhi, u32 offlo, u32 count) |
1042 | { | 930 | { |
1043 | return sys_readahead(fd, ((loff_t)offhi << 32) | offlo, count); | 931 | return sys_readahead(fd, ((loff_t)offhi << 32) | offlo, count); |
1044 | } | 932 | } |
1045 | 933 | ||
1046 | asmlinkage int sys32_truncate64(const char __user * path, u32 reg4, | 934 | asmlinkage int compat_sys_truncate64(const char __user * path, u32 reg4, |
1047 | unsigned long high, unsigned long low) | 935 | unsigned long high, unsigned long low) |
1048 | { | 936 | { |
1049 | return sys_truncate(path, (high << 32) | low); | 937 | return sys_truncate(path, (high << 32) | low); |
1050 | } | 938 | } |
1051 | 939 | ||
1052 | asmlinkage int sys32_ftruncate64(unsigned int fd, u32 reg4, unsigned long high, | 940 | asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long high, |
1053 | unsigned long low) | 941 | unsigned long low) |
1054 | { | 942 | { |
1055 | return sys_ftruncate(fd, (high << 32) | low); | 943 | return sys_ftruncate(fd, (high << 32) | low); |
@@ -1108,7 +996,7 @@ long ppc32_timer_create(clockid_t clock, | |||
1108 | return err; | 996 | return err; |
1109 | } | 997 | } |
1110 | 998 | ||
1111 | asmlinkage long sys32_add_key(const char __user *_type, | 999 | asmlinkage long compat_sys_add_key(const char __user *_type, |
1112 | const char __user *_description, | 1000 | const char __user *_description, |
1113 | const void __user *_payload, | 1001 | const void __user *_payload, |
1114 | u32 plen, | 1002 | u32 plen, |
@@ -1117,7 +1005,7 @@ asmlinkage long sys32_add_key(const char __user *_type, | |||
1117 | return sys_add_key(_type, _description, _payload, plen, ringid); | 1005 | return sys_add_key(_type, _description, _payload, plen, ringid); |
1118 | } | 1006 | } |
1119 | 1007 | ||
1120 | asmlinkage long sys32_request_key(const char __user *_type, | 1008 | asmlinkage long compat_sys_request_key(const char __user *_type, |
1121 | const char __user *_description, | 1009 | const char __user *_description, |
1122 | const char __user *_callout_info, | 1010 | const char __user *_callout_info, |
1123 | u32 destringid) | 1011 | u32 destringid) |
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index b364141ec01c..2103f78f6445 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S | |||
@@ -19,15 +19,13 @@ | |||
19 | 19 | ||
20 | #ifdef CONFIG_PPC64 | 20 | #ifdef CONFIG_PPC64 |
21 | #define SYSCALL(func) .llong .sys_##func,.sys_##func | 21 | #define SYSCALL(func) .llong .sys_##func,.sys_##func |
22 | #define SYSCALL32(func) .llong .sys_##func,.sys32_##func | ||
23 | #define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func | 22 | #define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func |
24 | #define PPC_SYS(func) .llong .ppc_##func,.ppc_##func | 23 | #define PPC_SYS(func) .llong .ppc_##func,.ppc_##func |
25 | #define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall | 24 | #define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall |
26 | #define SYS32ONLY(func) .llong .sys_ni_syscall,.sys32_##func | 25 | #define SYS32ONLY(func) .llong .sys_ni_syscall,.compat_sys_##func |
27 | #define SYSX(f, f3264, f32) .llong .f,.f3264 | 26 | #define SYSX(f, f3264, f32) .llong .f,.f3264 |
28 | #else | 27 | #else |
29 | #define SYSCALL(func) .long sys_##func | 28 | #define SYSCALL(func) .long sys_##func |
30 | #define SYSCALL32(func) .long sys_##func | ||
31 | #define COMPAT_SYS(func) .long sys_##func | 29 | #define COMPAT_SYS(func) .long sys_##func |
32 | #define PPC_SYS(func) .long ppc_##func | 30 | #define PPC_SYS(func) .long ppc_##func |
33 | #define OLDSYS(func) .long sys_##func | 31 | #define OLDSYS(func) .long sys_##func |
@@ -50,11 +48,11 @@ SYSCALL(read) | |||
50 | SYSCALL(write) | 48 | SYSCALL(write) |
51 | COMPAT_SYS(open) | 49 | COMPAT_SYS(open) |
52 | SYSCALL(close) | 50 | SYSCALL(close) |
53 | SYSCALL32(waitpid) | 51 | COMPAT_SYS(waitpid) |
54 | SYSCALL32(creat) | 52 | COMPAT_SYS(creat) |
55 | SYSCALL(link) | 53 | SYSCALL(link) |
56 | SYSCALL(unlink) | 54 | SYSCALL(unlink) |
57 | SYSCALL32(execve) | 55 | COMPAT_SYS(execve) |
58 | SYSCALL(chdir) | 56 | SYSCALL(chdir) |
59 | SYSX(sys64_time,compat_sys_time,sys_time) | 57 | SYSX(sys64_time,compat_sys_time,sys_time) |
60 | SYSCALL(mknod) | 58 | SYSCALL(mknod) |
@@ -69,20 +67,20 @@ SYSX(sys_ni_syscall,sys_oldumount,sys_oldumount) | |||
69 | SYSCALL(setuid) | 67 | SYSCALL(setuid) |
70 | SYSCALL(getuid) | 68 | SYSCALL(getuid) |
71 | COMPAT_SYS(stime) | 69 | COMPAT_SYS(stime) |
72 | SYSCALL32(ptrace) | 70 | COMPAT_SYS(ptrace) |
73 | SYSCALL(alarm) | 71 | SYSCALL(alarm) |
74 | OLDSYS(fstat) | 72 | OLDSYS(fstat) |
75 | SYSCALL32(pause) | 73 | COMPAT_SYS(pause) |
76 | COMPAT_SYS(utime) | 74 | COMPAT_SYS(utime) |
77 | SYSCALL(ni_syscall) | 75 | SYSCALL(ni_syscall) |
78 | SYSCALL(ni_syscall) | 76 | SYSCALL(ni_syscall) |
79 | SYSCALL32(access) | 77 | COMPAT_SYS(access) |
80 | SYSCALL32(nice) | 78 | COMPAT_SYS(nice) |
81 | SYSCALL(ni_syscall) | 79 | SYSCALL(ni_syscall) |
82 | SYSCALL(sync) | 80 | SYSCALL(sync) |
83 | SYSCALL32(kill) | 81 | COMPAT_SYS(kill) |
84 | SYSCALL(rename) | 82 | SYSCALL(rename) |
85 | SYSCALL32(mkdir) | 83 | COMPAT_SYS(mkdir) |
86 | SYSCALL(rmdir) | 84 | SYSCALL(rmdir) |
87 | SYSCALL(dup) | 85 | SYSCALL(dup) |
88 | SYSCALL(pipe) | 86 | SYSCALL(pipe) |
@@ -100,10 +98,10 @@ SYSCALL(ni_syscall) | |||
100 | COMPAT_SYS(ioctl) | 98 | COMPAT_SYS(ioctl) |
101 | COMPAT_SYS(fcntl) | 99 | COMPAT_SYS(fcntl) |
102 | SYSCALL(ni_syscall) | 100 | SYSCALL(ni_syscall) |
103 | SYSCALL32(setpgid) | 101 | COMPAT_SYS(setpgid) |
104 | SYSCALL(ni_syscall) | 102 | SYSCALL(ni_syscall) |
105 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) | 103 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) |
106 | SYSCALL32(umask) | 104 | COMPAT_SYS(umask) |
107 | SYSCALL(chroot) | 105 | SYSCALL(chroot) |
108 | SYSCALL(ustat) | 106 | SYSCALL(ustat) |
109 | SYSCALL(dup2) | 107 | SYSCALL(dup2) |
@@ -112,23 +110,23 @@ SYSCALL(getpgrp) | |||
112 | SYSCALL(setsid) | 110 | SYSCALL(setsid) |
113 | SYS32ONLY(sigaction) | 111 | SYS32ONLY(sigaction) |
114 | SYSCALL(sgetmask) | 112 | SYSCALL(sgetmask) |
115 | SYSCALL32(ssetmask) | 113 | COMPAT_SYS(ssetmask) |
116 | SYSCALL(setreuid) | 114 | SYSCALL(setreuid) |
117 | SYSCALL(setregid) | 115 | SYSCALL(setregid) |
118 | SYSX(sys_ni_syscall,ppc32_sigsuspend,ppc_sigsuspend) | 116 | SYSX(sys_ni_syscall,ppc32_sigsuspend,ppc_sigsuspend) |
119 | COMPAT_SYS(sigpending) | 117 | COMPAT_SYS(sigpending) |
120 | SYSCALL32(sethostname) | 118 | COMPAT_SYS(sethostname) |
121 | COMPAT_SYS(setrlimit) | 119 | COMPAT_SYS(setrlimit) |
122 | COMPAT_SYS(old_getrlimit) | 120 | COMPAT_SYS(old_getrlimit) |
123 | COMPAT_SYS(getrusage) | 121 | COMPAT_SYS(getrusage) |
124 | SYSCALL32(gettimeofday) | 122 | COMPAT_SYS(gettimeofday) |
125 | SYSCALL32(settimeofday) | 123 | COMPAT_SYS(settimeofday) |
126 | SYSCALL32(getgroups) | 124 | COMPAT_SYS(getgroups) |
127 | SYSCALL32(setgroups) | 125 | COMPAT_SYS(setgroups) |
128 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) | 126 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) |
129 | SYSCALL(symlink) | 127 | SYSCALL(symlink) |
130 | OLDSYS(lstat) | 128 | OLDSYS(lstat) |
131 | SYSCALL32(readlink) | 129 | COMPAT_SYS(readlink) |
132 | SYSCALL(uselib) | 130 | SYSCALL(uselib) |
133 | SYSCALL(swapon) | 131 | SYSCALL(swapon) |
134 | SYSCALL(reboot) | 132 | SYSCALL(reboot) |
@@ -139,14 +137,14 @@ SYSCALL(truncate) | |||
139 | SYSCALL(ftruncate) | 137 | SYSCALL(ftruncate) |
140 | SYSCALL(fchmod) | 138 | SYSCALL(fchmod) |
141 | SYSCALL(fchown) | 139 | SYSCALL(fchown) |
142 | SYSCALL32(getpriority) | 140 | COMPAT_SYS(getpriority) |
143 | SYSCALL32(setpriority) | 141 | COMPAT_SYS(setpriority) |
144 | SYSCALL(ni_syscall) | 142 | SYSCALL(ni_syscall) |
145 | COMPAT_SYS(statfs) | 143 | COMPAT_SYS(statfs) |
146 | COMPAT_SYS(fstatfs) | 144 | COMPAT_SYS(fstatfs) |
147 | SYSCALL(ni_syscall) | 145 | SYSCALL(ni_syscall) |
148 | COMPAT_SYS(socketcall) | 146 | COMPAT_SYS(socketcall) |
149 | SYSCALL32(syslog) | 147 | COMPAT_SYS(syslog) |
150 | COMPAT_SYS(setitimer) | 148 | COMPAT_SYS(setitimer) |
151 | COMPAT_SYS(getitimer) | 149 | COMPAT_SYS(getitimer) |
152 | COMPAT_SYS(newstat) | 150 | COMPAT_SYS(newstat) |
@@ -159,15 +157,15 @@ SYSCALL(ni_syscall) | |||
159 | SYSCALL(ni_syscall) | 157 | SYSCALL(ni_syscall) |
160 | COMPAT_SYS(wait4) | 158 | COMPAT_SYS(wait4) |
161 | SYSCALL(swapoff) | 159 | SYSCALL(swapoff) |
162 | SYSCALL32(sysinfo) | 160 | COMPAT_SYS(sysinfo) |
163 | SYSCALL32(ipc) | 161 | COMPAT_SYS(ipc) |
164 | SYSCALL(fsync) | 162 | SYSCALL(fsync) |
165 | SYSX(sys_ni_syscall,ppc32_sigreturn,sys_sigreturn) | 163 | SYSX(sys_ni_syscall,ppc32_sigreturn,sys_sigreturn) |
166 | PPC_SYS(clone) | 164 | PPC_SYS(clone) |
167 | SYSCALL32(setdomainname) | 165 | COMPAT_SYS(setdomainname) |
168 | PPC_SYS(newuname) | 166 | PPC_SYS(newuname) |
169 | SYSCALL(ni_syscall) | 167 | SYSCALL(ni_syscall) |
170 | SYSCALL32(adjtimex) | 168 | COMPAT_SYS(adjtimex) |
171 | SYSCALL(mprotect) | 169 | SYSCALL(mprotect) |
172 | SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask) | 170 | SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask) |
173 | SYSCALL(ni_syscall) | 171 | SYSCALL(ni_syscall) |
@@ -175,36 +173,36 @@ SYSCALL(init_module) | |||
175 | SYSCALL(delete_module) | 173 | SYSCALL(delete_module) |
176 | SYSCALL(ni_syscall) | 174 | SYSCALL(ni_syscall) |
177 | SYSCALL(quotactl) | 175 | SYSCALL(quotactl) |
178 | SYSCALL32(getpgid) | 176 | COMPAT_SYS(getpgid) |
179 | SYSCALL(fchdir) | 177 | SYSCALL(fchdir) |
180 | SYSCALL(bdflush) | 178 | SYSCALL(bdflush) |
181 | SYSCALL32(sysfs) | 179 | COMPAT_SYS(sysfs) |
182 | SYSX(ppc64_personality,ppc64_personality,sys_personality) | 180 | SYSX(ppc64_personality,ppc64_personality,sys_personality) |
183 | SYSCALL(ni_syscall) | 181 | SYSCALL(ni_syscall) |
184 | SYSCALL(setfsuid) | 182 | SYSCALL(setfsuid) |
185 | SYSCALL(setfsgid) | 183 | SYSCALL(setfsgid) |
186 | SYSCALL(llseek) | 184 | SYSCALL(llseek) |
187 | SYSCALL32(getdents) | 185 | COMPAT_SYS(getdents) |
188 | SYSX(sys_select,ppc32_select,ppc_select) | 186 | SYSX(sys_select,ppc32_select,ppc_select) |
189 | SYSCALL(flock) | 187 | SYSCALL(flock) |
190 | SYSCALL(msync) | 188 | SYSCALL(msync) |
191 | COMPAT_SYS(readv) | 189 | COMPAT_SYS(readv) |
192 | COMPAT_SYS(writev) | 190 | COMPAT_SYS(writev) |
193 | SYSCALL32(getsid) | 191 | COMPAT_SYS(getsid) |
194 | SYSCALL(fdatasync) | 192 | SYSCALL(fdatasync) |
195 | SYSCALL32(sysctl) | 193 | COMPAT_SYS(sysctl) |
196 | SYSCALL(mlock) | 194 | SYSCALL(mlock) |
197 | SYSCALL(munlock) | 195 | SYSCALL(munlock) |
198 | SYSCALL(mlockall) | 196 | SYSCALL(mlockall) |
199 | SYSCALL(munlockall) | 197 | SYSCALL(munlockall) |
200 | SYSCALL32(sched_setparam) | 198 | COMPAT_SYS(sched_setparam) |
201 | SYSCALL32(sched_getparam) | 199 | COMPAT_SYS(sched_getparam) |
202 | SYSCALL32(sched_setscheduler) | 200 | COMPAT_SYS(sched_setscheduler) |
203 | SYSCALL32(sched_getscheduler) | 201 | COMPAT_SYS(sched_getscheduler) |
204 | SYSCALL(sched_yield) | 202 | SYSCALL(sched_yield) |
205 | SYSCALL32(sched_get_priority_max) | 203 | COMPAT_SYS(sched_get_priority_max) |
206 | SYSCALL32(sched_get_priority_min) | 204 | COMPAT_SYS(sched_get_priority_min) |
207 | SYSCALL32(sched_rr_get_interval) | 205 | COMPAT_SYS(sched_rr_get_interval) |
208 | COMPAT_SYS(nanosleep) | 206 | COMPAT_SYS(nanosleep) |
209 | SYSCALL(mremap) | 207 | SYSCALL(mremap) |
210 | SYSCALL(setresuid) | 208 | SYSCALL(setresuid) |
@@ -214,36 +212,36 @@ SYSCALL(poll) | |||
214 | COMPAT_SYS(nfsservctl) | 212 | COMPAT_SYS(nfsservctl) |
215 | SYSCALL(setresgid) | 213 | SYSCALL(setresgid) |
216 | SYSCALL(getresgid) | 214 | SYSCALL(getresgid) |
217 | SYSCALL32(prctl) | 215 | COMPAT_SYS(prctl) |
218 | SYSX(ppc64_rt_sigreturn,ppc32_rt_sigreturn,sys_rt_sigreturn) | 216 | SYSX(ppc64_rt_sigreturn,ppc32_rt_sigreturn,sys_rt_sigreturn) |
219 | SYSCALL32(rt_sigaction) | 217 | COMPAT_SYS(rt_sigaction) |
220 | SYSCALL32(rt_sigprocmask) | 218 | COMPAT_SYS(rt_sigprocmask) |
221 | SYSCALL32(rt_sigpending) | 219 | COMPAT_SYS(rt_sigpending) |
222 | COMPAT_SYS(rt_sigtimedwait) | 220 | COMPAT_SYS(rt_sigtimedwait) |
223 | SYSCALL32(rt_sigqueueinfo) | 221 | COMPAT_SYS(rt_sigqueueinfo) |
224 | SYSX(ppc64_rt_sigsuspend,ppc32_rt_sigsuspend,ppc_rt_sigsuspend) | 222 | SYSX(ppc64_rt_sigsuspend,ppc32_rt_sigsuspend,ppc_rt_sigsuspend) |
225 | SYSCALL32(pread64) | 223 | COMPAT_SYS(pread64) |
226 | SYSCALL32(pwrite64) | 224 | COMPAT_SYS(pwrite64) |
227 | SYSCALL(chown) | 225 | SYSCALL(chown) |
228 | SYSCALL(getcwd) | 226 | SYSCALL(getcwd) |
229 | SYSCALL(capget) | 227 | SYSCALL(capget) |
230 | SYSCALL(capset) | 228 | SYSCALL(capset) |
231 | SYSCALL32(sigaltstack) | 229 | COMPAT_SYS(sigaltstack) |
232 | SYSX(sys_sendfile64,sys32_sendfile,sys_sendfile) | 230 | SYSX(sys_sendfile64,compat_sys_sendfile,sys_sendfile) |
233 | SYSCALL(ni_syscall) | 231 | SYSCALL(ni_syscall) |
234 | SYSCALL(ni_syscall) | 232 | SYSCALL(ni_syscall) |
235 | PPC_SYS(vfork) | 233 | PPC_SYS(vfork) |
236 | COMPAT_SYS(getrlimit) | 234 | COMPAT_SYS(getrlimit) |
237 | SYSCALL32(readahead) | 235 | COMPAT_SYS(readahead) |
238 | SYS32ONLY(mmap2) | 236 | SYS32ONLY(mmap2) |
239 | SYS32ONLY(truncate64) | 237 | SYS32ONLY(truncate64) |
240 | SYS32ONLY(ftruncate64) | 238 | SYS32ONLY(ftruncate64) |
241 | SYSX(sys_ni_syscall,sys_stat64,sys_stat64) | 239 | SYSX(sys_ni_syscall,sys_stat64,sys_stat64) |
242 | SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64) | 240 | SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64) |
243 | SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64) | 241 | SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64) |
244 | SYSCALL32(pciconfig_read) | 242 | COMPAT_SYS(pciconfig_read) |
245 | SYSCALL32(pciconfig_write) | 243 | COMPAT_SYS(pciconfig_write) |
246 | SYSCALL32(pciconfig_iobase) | 244 | COMPAT_SYS(pciconfig_iobase) |
247 | SYSCALL(ni_syscall) | 245 | SYSCALL(ni_syscall) |
248 | SYSCALL(getdents64) | 246 | SYSCALL(getdents64) |
249 | SYSCALL(pivot_root) | 247 | SYSCALL(pivot_root) |
@@ -293,8 +291,8 @@ COMPAT_SYS(clock_gettime) | |||
293 | COMPAT_SYS(clock_getres) | 291 | COMPAT_SYS(clock_getres) |
294 | COMPAT_SYS(clock_nanosleep) | 292 | COMPAT_SYS(clock_nanosleep) |
295 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) | 293 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) |
296 | SYSCALL32(tgkill) | 294 | COMPAT_SYS(tgkill) |
297 | SYSCALL32(utimes) | 295 | COMPAT_SYS(utimes) |
298 | COMPAT_SYS(statfs64) | 296 | COMPAT_SYS(statfs64) |
299 | COMPAT_SYS(fstatfs64) | 297 | COMPAT_SYS(fstatfs64) |
300 | SYSX(sys_ni_syscall, ppc32_fadvise64_64, sys_fadvise64_64) | 298 | SYSX(sys_ni_syscall, ppc32_fadvise64_64, sys_fadvise64_64) |
@@ -312,12 +310,12 @@ COMPAT_SYS(mq_timedreceive) | |||
312 | COMPAT_SYS(mq_notify) | 310 | COMPAT_SYS(mq_notify) |
313 | COMPAT_SYS(mq_getsetattr) | 311 | COMPAT_SYS(mq_getsetattr) |
314 | COMPAT_SYS(kexec_load) | 312 | COMPAT_SYS(kexec_load) |
315 | SYSCALL32(add_key) | 313 | COMPAT_SYS(add_key) |
316 | SYSCALL32(request_key) | 314 | COMPAT_SYS(request_key) |
317 | COMPAT_SYS(keyctl) | 315 | COMPAT_SYS(keyctl) |
318 | COMPAT_SYS(waitid) | 316 | COMPAT_SYS(waitid) |
319 | SYSCALL32(ioprio_set) | 317 | COMPAT_SYS(ioprio_set) |
320 | SYSCALL32(ioprio_get) | 318 | COMPAT_SYS(ioprio_get) |
321 | SYSCALL(inotify_init) | 319 | SYSCALL(inotify_init) |
322 | SYSCALL(inotify_add_watch) | 320 | SYSCALL(inotify_add_watch) |
323 | SYSCALL(inotify_rm_watch) | 321 | SYSCALL(inotify_rm_watch) |
diff --git a/arch/ppc64/kernel/entry.S b/arch/ppc64/kernel/entry.S index ea30af810e0c..5d2fcbe384c1 100644 --- a/arch/ppc64/kernel/entry.S +++ b/arch/ppc64/kernel/entry.S | |||
@@ -265,7 +265,7 @@ _GLOBAL(save_nvgprs) | |||
265 | */ | 265 | */ |
266 | _GLOBAL(ppc32_sigsuspend) | 266 | _GLOBAL(ppc32_sigsuspend) |
267 | bl .save_nvgprs | 267 | bl .save_nvgprs |
268 | bl .sys32_sigsuspend | 268 | bl .compat_sys_sigsuspend |
269 | b 70f | 269 | b 70f |
270 | 270 | ||
271 | _GLOBAL(ppc64_rt_sigsuspend) | 271 | _GLOBAL(ppc64_rt_sigsuspend) |
@@ -275,7 +275,7 @@ _GLOBAL(ppc64_rt_sigsuspend) | |||
275 | 275 | ||
276 | _GLOBAL(ppc32_rt_sigsuspend) | 276 | _GLOBAL(ppc32_rt_sigsuspend) |
277 | bl .save_nvgprs | 277 | bl .save_nvgprs |
278 | bl .sys32_rt_sigsuspend | 278 | bl .compat_sys_rt_sigsuspend |
279 | 70: cmpdi 0,r3,0 | 279 | 70: cmpdi 0,r3,0 |
280 | /* If it returned an error, we need to return via syscall_exit to set | 280 | /* If it returned an error, we need to return via syscall_exit to set |
281 | the SO bit in cr0 and potentially stop for ptrace. */ | 281 | the SO bit in cr0 and potentially stop for ptrace. */ |
@@ -310,7 +310,7 @@ _GLOBAL(ppc_clone) | |||
310 | 310 | ||
311 | _GLOBAL(ppc32_swapcontext) | 311 | _GLOBAL(ppc32_swapcontext) |
312 | bl .save_nvgprs | 312 | bl .save_nvgprs |
313 | bl .sys32_swapcontext | 313 | bl .compat_sys_swapcontext |
314 | b 80f | 314 | b 80f |
315 | 315 | ||
316 | _GLOBAL(ppc64_swapcontext) | 316 | _GLOBAL(ppc64_swapcontext) |
@@ -319,11 +319,11 @@ _GLOBAL(ppc64_swapcontext) | |||
319 | b 80f | 319 | b 80f |
320 | 320 | ||
321 | _GLOBAL(ppc32_sigreturn) | 321 | _GLOBAL(ppc32_sigreturn) |
322 | bl .sys32_sigreturn | 322 | bl .compat_sys_sigreturn |
323 | b 80f | 323 | b 80f |
324 | 324 | ||
325 | _GLOBAL(ppc32_rt_sigreturn) | 325 | _GLOBAL(ppc32_rt_sigreturn) |
326 | bl .sys32_rt_sigreturn | 326 | bl .compat_sys_rt_sigreturn |
327 | b 80f | 327 | b 80f |
328 | 328 | ||
329 | _GLOBAL(ppc64_rt_sigreturn) | 329 | _GLOBAL(ppc64_rt_sigreturn) |
diff --git a/arch/ppc64/kernel/misc.S b/arch/ppc64/kernel/misc.S index eb407c429bb0..ea8b6cf32c38 100644 --- a/arch/ppc64/kernel/misc.S +++ b/arch/ppc64/kernel/misc.S | |||
@@ -928,11 +928,11 @@ _GLOBAL(sys_call_table32) | |||
928 | .llong .sys_write | 928 | .llong .sys_write |
929 | .llong .compat_sys_open /* 5 */ | 929 | .llong .compat_sys_open /* 5 */ |
930 | .llong .sys_close | 930 | .llong .sys_close |
931 | .llong .sys32_waitpid | 931 | .llong .compat_sys_waitpid |
932 | .llong .sys32_creat | 932 | .llong .compat_sys_creat |
933 | .llong .sys_link | 933 | .llong .sys_link |
934 | .llong .sys_unlink /* 10 */ | 934 | .llong .sys_unlink /* 10 */ |
935 | .llong .sys32_execve | 935 | .llong .compat_sys_execve |
936 | .llong .sys_chdir | 936 | .llong .sys_chdir |
937 | .llong .compat_sys_time | 937 | .llong .compat_sys_time |
938 | .llong .sys_mknod | 938 | .llong .sys_mknod |
@@ -947,20 +947,20 @@ _GLOBAL(sys_call_table32) | |||
947 | .llong .sys_setuid | 947 | .llong .sys_setuid |
948 | .llong .sys_getuid | 948 | .llong .sys_getuid |
949 | .llong .compat_sys_stime /* 25 */ | 949 | .llong .compat_sys_stime /* 25 */ |
950 | .llong .sys32_ptrace | 950 | .llong .compat_sys_ptrace |
951 | .llong .sys_alarm | 951 | .llong .sys_alarm |
952 | .llong .sys_ni_syscall /* old fstat syscall */ | 952 | .llong .sys_ni_syscall /* old fstat syscall */ |
953 | .llong .sys32_pause | 953 | .llong .compat_sys_pause |
954 | .llong .compat_sys_utime /* 30 */ | 954 | .llong .compat_sys_utime /* 30 */ |
955 | .llong .sys_ni_syscall /* old stty syscall */ | 955 | .llong .sys_ni_syscall /* old stty syscall */ |
956 | .llong .sys_ni_syscall /* old gtty syscall */ | 956 | .llong .sys_ni_syscall /* old gtty syscall */ |
957 | .llong .sys32_access | 957 | .llong .compat_sys_access |
958 | .llong .sys32_nice | 958 | .llong .compat_sys_nice |
959 | .llong .sys_ni_syscall /* 35 - old ftime syscall */ | 959 | .llong .sys_ni_syscall /* 35 - old ftime syscall */ |
960 | .llong .sys_sync | 960 | .llong .sys_sync |
961 | .llong .sys32_kill | 961 | .llong .compat_sys_kill |
962 | .llong .sys_rename | 962 | .llong .sys_rename |
963 | .llong .sys32_mkdir | 963 | .llong .compat_sys_mkdir |
964 | .llong .sys_rmdir /* 40 */ | 964 | .llong .sys_rmdir /* 40 */ |
965 | .llong .sys_dup | 965 | .llong .sys_dup |
966 | .llong .sys_pipe | 966 | .llong .sys_pipe |
@@ -978,35 +978,35 @@ _GLOBAL(sys_call_table32) | |||
978 | .llong .compat_sys_ioctl | 978 | .llong .compat_sys_ioctl |
979 | .llong .compat_sys_fcntl /* 55 */ | 979 | .llong .compat_sys_fcntl /* 55 */ |
980 | .llong .sys_ni_syscall /* old mpx syscall */ | 980 | .llong .sys_ni_syscall /* old mpx syscall */ |
981 | .llong .sys32_setpgid | 981 | .llong .compat_sys_setpgid |
982 | .llong .sys_ni_syscall /* old ulimit syscall */ | 982 | .llong .sys_ni_syscall /* old ulimit syscall */ |
983 | .llong .sys_olduname | 983 | .llong .sys_olduname |
984 | .llong .sys32_umask /* 60 */ | 984 | .llong .compat_sys_umask /* 60 */ |
985 | .llong .sys_chroot | 985 | .llong .sys_chroot |
986 | .llong .sys_ustat | 986 | .llong .sys_ustat |
987 | .llong .sys_dup2 | 987 | .llong .sys_dup2 |
988 | .llong .sys_getppid | 988 | .llong .sys_getppid |
989 | .llong .sys_getpgrp /* 65 */ | 989 | .llong .sys_getpgrp /* 65 */ |
990 | .llong .sys_setsid | 990 | .llong .sys_setsid |
991 | .llong .sys32_sigaction | 991 | .llong .compat_sys_sigaction |
992 | .llong .sys_sgetmask | 992 | .llong .sys_sgetmask |
993 | .llong .sys32_ssetmask | 993 | .llong .compat_sys_ssetmask |
994 | .llong .sys_setreuid /* 70 */ | 994 | .llong .sys_setreuid /* 70 */ |
995 | .llong .sys_setregid | 995 | .llong .sys_setregid |
996 | .llong .ppc32_sigsuspend | 996 | .llong .ppc32_sigsuspend |
997 | .llong .compat_sys_sigpending | 997 | .llong .compat_sys_sigpending |
998 | .llong .sys32_sethostname | 998 | .llong .compat_sys_sethostname |
999 | .llong .compat_sys_setrlimit /* 75 */ | 999 | .llong .compat_sys_setrlimit /* 75 */ |
1000 | .llong .compat_sys_old_getrlimit | 1000 | .llong .compat_sys_old_getrlimit |
1001 | .llong .compat_sys_getrusage | 1001 | .llong .compat_sys_getrusage |
1002 | .llong .sys32_gettimeofday | 1002 | .llong .compat_sys_gettimeofday |
1003 | .llong .sys32_settimeofday | 1003 | .llong .compat_sys_settimeofday |
1004 | .llong .sys32_getgroups /* 80 */ | 1004 | .llong .compat_sys_getgroups /* 80 */ |
1005 | .llong .sys32_setgroups | 1005 | .llong .compat_sys_setgroups |
1006 | .llong .sys_ni_syscall /* old select syscall */ | 1006 | .llong .sys_ni_syscall /* old select syscall */ |
1007 | .llong .sys_symlink | 1007 | .llong .sys_symlink |
1008 | .llong .sys_ni_syscall /* old lstat syscall */ | 1008 | .llong .sys_ni_syscall /* old lstat syscall */ |
1009 | .llong .sys32_readlink /* 85 */ | 1009 | .llong .compat_sys_readlink /* 85 */ |
1010 | .llong .sys_uselib | 1010 | .llong .sys_uselib |
1011 | .llong .sys_swapon | 1011 | .llong .sys_swapon |
1012 | .llong .sys_reboot | 1012 | .llong .sys_reboot |
@@ -1017,14 +1017,14 @@ _GLOBAL(sys_call_table32) | |||
1017 | .llong .sys_ftruncate | 1017 | .llong .sys_ftruncate |
1018 | .llong .sys_fchmod | 1018 | .llong .sys_fchmod |
1019 | .llong .sys_fchown /* 95 */ | 1019 | .llong .sys_fchown /* 95 */ |
1020 | .llong .sys32_getpriority | 1020 | .llong .compat_sys_getpriority |
1021 | .llong .sys32_setpriority | 1021 | .llong .compat_sys_setpriority |
1022 | .llong .sys_ni_syscall /* old profil syscall */ | 1022 | .llong .sys_ni_syscall /* old profil syscall */ |
1023 | .llong .compat_sys_statfs | 1023 | .llong .compat_sys_statfs |
1024 | .llong .compat_sys_fstatfs /* 100 */ | 1024 | .llong .compat_sys_fstatfs /* 100 */ |
1025 | .llong .sys_ni_syscall /* old ioperm syscall */ | 1025 | .llong .sys_ni_syscall /* old ioperm syscall */ |
1026 | .llong .compat_sys_socketcall | 1026 | .llong .compat_sys_socketcall |
1027 | .llong .sys32_syslog | 1027 | .llong .compat_sys_syslog |
1028 | .llong .compat_sys_setitimer | 1028 | .llong .compat_sys_setitimer |
1029 | .llong .compat_sys_getitimer /* 105 */ | 1029 | .llong .compat_sys_getitimer /* 105 */ |
1030 | .llong .compat_sys_newstat | 1030 | .llong .compat_sys_newstat |
@@ -1037,15 +1037,15 @@ _GLOBAL(sys_call_table32) | |||
1037 | .llong .sys_ni_syscall /* old vm86 syscall */ | 1037 | .llong .sys_ni_syscall /* old vm86 syscall */ |
1038 | .llong .compat_sys_wait4 | 1038 | .llong .compat_sys_wait4 |
1039 | .llong .sys_swapoff /* 115 */ | 1039 | .llong .sys_swapoff /* 115 */ |
1040 | .llong .sys32_sysinfo | 1040 | .llong .compat_sys_sysinfo |
1041 | .llong .sys32_ipc | 1041 | .llong .compat_sys_ipc |
1042 | .llong .sys_fsync | 1042 | .llong .sys_fsync |
1043 | .llong .ppc32_sigreturn | 1043 | .llong .ppc32_sigreturn |
1044 | .llong .ppc_clone /* 120 */ | 1044 | .llong .ppc_clone /* 120 */ |
1045 | .llong .sys32_setdomainname | 1045 | .llong .compat_sys_setdomainname |
1046 | .llong .ppc_newuname | 1046 | .llong .ppc_newuname |
1047 | .llong .sys_ni_syscall /* old modify_ldt syscall */ | 1047 | .llong .sys_ni_syscall /* old modify_ldt syscall */ |
1048 | .llong .sys32_adjtimex | 1048 | .llong .compat_sys_adjtimex |
1049 | .llong .sys_mprotect /* 125 */ | 1049 | .llong .sys_mprotect /* 125 */ |
1050 | .llong .compat_sys_sigprocmask | 1050 | .llong .compat_sys_sigprocmask |
1051 | .llong .sys_ni_syscall /* old create_module syscall */ | 1051 | .llong .sys_ni_syscall /* old create_module syscall */ |
@@ -1053,36 +1053,36 @@ _GLOBAL(sys_call_table32) | |||
1053 | .llong .sys_delete_module | 1053 | .llong .sys_delete_module |
1054 | .llong .sys_ni_syscall /* 130 old get_kernel_syms syscall */ | 1054 | .llong .sys_ni_syscall /* 130 old get_kernel_syms syscall */ |
1055 | .llong .sys_quotactl | 1055 | .llong .sys_quotactl |
1056 | .llong .sys32_getpgid | 1056 | .llong .compat_sys_getpgid |
1057 | .llong .sys_fchdir | 1057 | .llong .sys_fchdir |
1058 | .llong .sys_bdflush | 1058 | .llong .sys_bdflush |
1059 | .llong .sys32_sysfs /* 135 */ | 1059 | .llong .compat_sys_sysfs /* 135 */ |
1060 | .llong .ppc64_personality | 1060 | .llong .ppc64_personality |
1061 | .llong .sys_ni_syscall /* for afs_syscall */ | 1061 | .llong .sys_ni_syscall /* for afs_syscall */ |
1062 | .llong .sys_setfsuid | 1062 | .llong .sys_setfsuid |
1063 | .llong .sys_setfsgid | 1063 | .llong .sys_setfsgid |
1064 | .llong .sys_llseek /* 140 */ | 1064 | .llong .sys_llseek /* 140 */ |
1065 | .llong .sys32_getdents | 1065 | .llong .compat_sys_getdents |
1066 | .llong .ppc32_select | 1066 | .llong .ppc32_select |
1067 | .llong .sys_flock | 1067 | .llong .sys_flock |
1068 | .llong .sys_msync | 1068 | .llong .sys_msync |
1069 | .llong .compat_sys_readv /* 145 */ | 1069 | .llong .compat_sys_readv /* 145 */ |
1070 | .llong .compat_sys_writev | 1070 | .llong .compat_sys_writev |
1071 | .llong .sys32_getsid | 1071 | .llong .compat_sys_getsid |
1072 | .llong .sys_fdatasync | 1072 | .llong .sys_fdatasync |
1073 | .llong .sys32_sysctl | 1073 | .llong .compat_sys_sysctl |
1074 | .llong .sys_mlock /* 150 */ | 1074 | .llong .sys_mlock /* 150 */ |
1075 | .llong .sys_munlock | 1075 | .llong .sys_munlock |
1076 | .llong .sys_mlockall | 1076 | .llong .sys_mlockall |
1077 | .llong .sys_munlockall | 1077 | .llong .sys_munlockall |
1078 | .llong .sys32_sched_setparam | 1078 | .llong .compat_sys_sched_setparam |
1079 | .llong .sys32_sched_getparam /* 155 */ | 1079 | .llong .compat_sys_sched_getparam /* 155 */ |
1080 | .llong .sys32_sched_setscheduler | 1080 | .llong .compat_sys_sched_setscheduler |
1081 | .llong .sys32_sched_getscheduler | 1081 | .llong .compat_sys_sched_getscheduler |
1082 | .llong .sys_sched_yield | 1082 | .llong .sys_sched_yield |
1083 | .llong .sys32_sched_get_priority_max | 1083 | .llong .compat_sys_sched_get_priority_max |
1084 | .llong .sys32_sched_get_priority_min /* 160 */ | 1084 | .llong .compat_sys_sched_get_priority_min /* 160 */ |
1085 | .llong .sys32_sched_rr_get_interval | 1085 | .llong .compat_sys_sched_rr_get_interval |
1086 | .llong .compat_sys_nanosleep | 1086 | .llong .compat_sys_nanosleep |
1087 | .llong .sys_mremap | 1087 | .llong .sys_mremap |
1088 | .llong .sys_setresuid | 1088 | .llong .sys_setresuid |
@@ -1092,36 +1092,36 @@ _GLOBAL(sys_call_table32) | |||
1092 | .llong .compat_sys_nfsservctl | 1092 | .llong .compat_sys_nfsservctl |
1093 | .llong .sys_setresgid | 1093 | .llong .sys_setresgid |
1094 | .llong .sys_getresgid /* 170 */ | 1094 | .llong .sys_getresgid /* 170 */ |
1095 | .llong .sys32_prctl | 1095 | .llong .compat_sys_prctl |
1096 | .llong .ppc32_rt_sigreturn | 1096 | .llong .ppc32_rt_sigreturn |
1097 | .llong .sys32_rt_sigaction | 1097 | .llong .compat_sys_rt_sigaction |
1098 | .llong .sys32_rt_sigprocmask | 1098 | .llong .compat_sys_rt_sigprocmask |
1099 | .llong .sys32_rt_sigpending /* 175 */ | 1099 | .llong .compat_sys_rt_sigpending /* 175 */ |
1100 | .llong .compat_sys_rt_sigtimedwait | 1100 | .llong .compat_sys_rt_sigtimedwait |
1101 | .llong .sys32_rt_sigqueueinfo | 1101 | .llong .compat_sys_rt_sigqueueinfo |
1102 | .llong .ppc32_rt_sigsuspend | 1102 | .llong .ppc32_rt_sigsuspend |
1103 | .llong .sys32_pread64 | 1103 | .llong .compat_sys_pread64 |
1104 | .llong .sys32_pwrite64 /* 180 */ | 1104 | .llong .compat_sys_pwrite64 /* 180 */ |
1105 | .llong .sys_chown | 1105 | .llong .sys_chown |
1106 | .llong .sys_getcwd | 1106 | .llong .sys_getcwd |
1107 | .llong .sys_capget | 1107 | .llong .sys_capget |
1108 | .llong .sys_capset | 1108 | .llong .sys_capset |
1109 | .llong .sys32_sigaltstack /* 185 */ | 1109 | .llong .compat_sys_sigaltstack /* 185 */ |
1110 | .llong .sys32_sendfile | 1110 | .llong .compat_sys_sendfile |
1111 | .llong .sys_ni_syscall /* reserved for streams1 */ | 1111 | .llong .sys_ni_syscall /* reserved for streams1 */ |
1112 | .llong .sys_ni_syscall /* reserved for streams2 */ | 1112 | .llong .sys_ni_syscall /* reserved for streams2 */ |
1113 | .llong .ppc_vfork | 1113 | .llong .ppc_vfork |
1114 | .llong .compat_sys_getrlimit /* 190 */ | 1114 | .llong .compat_sys_getrlimit /* 190 */ |
1115 | .llong .sys32_readahead | 1115 | .llong .compat_sys_readahead |
1116 | .llong .sys32_mmap2 | 1116 | .llong .compat_sys_mmap2 |
1117 | .llong .sys32_truncate64 | 1117 | .llong .compat_sys_truncate64 |
1118 | .llong .sys32_ftruncate64 | 1118 | .llong .compat_sys_ftruncate64 |
1119 | .llong .sys_stat64 /* 195 */ | 1119 | .llong .sys_stat64 /* 195 */ |
1120 | .llong .sys_lstat64 | 1120 | .llong .sys_lstat64 |
1121 | .llong .sys_fstat64 | 1121 | .llong .sys_fstat64 |
1122 | .llong .sys32_pciconfig_read | 1122 | .llong .compat_sys_pciconfig_read |
1123 | .llong .sys32_pciconfig_write | 1123 | .llong .compat_sys_pciconfig_write |
1124 | .llong .sys32_pciconfig_iobase /* 200 - pciconfig_iobase */ | 1124 | .llong .compat_sys_pciconfig_iobase /* 200 - pciconfig_iobase */ |
1125 | .llong .sys_ni_syscall /* reserved for MacOnLinux */ | 1125 | .llong .sys_ni_syscall /* reserved for MacOnLinux */ |
1126 | .llong .sys_getdents64 | 1126 | .llong .sys_getdents64 |
1127 | .llong .sys_pivot_root | 1127 | .llong .sys_pivot_root |
@@ -1147,7 +1147,7 @@ _GLOBAL(sys_call_table32) | |||
1147 | .llong .compat_sys_sched_getaffinity | 1147 | .llong .compat_sys_sched_getaffinity |
1148 | .llong .sys_ni_syscall | 1148 | .llong .sys_ni_syscall |
1149 | .llong .sys_ni_syscall /* 225 - reserved for tux */ | 1149 | .llong .sys_ni_syscall /* 225 - reserved for tux */ |
1150 | .llong .sys32_sendfile64 | 1150 | .llong .compat_sys_sendfile64 |
1151 | .llong .compat_sys_io_setup | 1151 | .llong .compat_sys_io_setup |
1152 | .llong .sys_io_destroy | 1152 | .llong .sys_io_destroy |
1153 | .llong .compat_sys_io_getevents | 1153 | .llong .compat_sys_io_getevents |
@@ -1171,8 +1171,8 @@ _GLOBAL(sys_call_table32) | |||
1171 | .llong .compat_sys_clock_getres | 1171 | .llong .compat_sys_clock_getres |
1172 | .llong .compat_sys_clock_nanosleep | 1172 | .llong .compat_sys_clock_nanosleep |
1173 | .llong .ppc32_swapcontext | 1173 | .llong .ppc32_swapcontext |
1174 | .llong .sys32_tgkill /* 250 */ | 1174 | .llong .compat_sys_tgkill /* 250 */ |
1175 | .llong .sys32_utimes | 1175 | .llong .compat_sys_utimes |
1176 | .llong .compat_sys_statfs64 | 1176 | .llong .compat_sys_statfs64 |
1177 | .llong .compat_sys_fstatfs64 | 1177 | .llong .compat_sys_fstatfs64 |
1178 | .llong .ppc32_fadvise64_64 /* 32bit only fadvise64_64 */ | 1178 | .llong .ppc32_fadvise64_64 /* 32bit only fadvise64_64 */ |
@@ -1190,12 +1190,12 @@ _GLOBAL(sys_call_table32) | |||
1190 | .llong .compat_sys_mq_notify | 1190 | .llong .compat_sys_mq_notify |
1191 | .llong .compat_sys_mq_getsetattr | 1191 | .llong .compat_sys_mq_getsetattr |
1192 | .llong .compat_sys_kexec_load | 1192 | .llong .compat_sys_kexec_load |
1193 | .llong .sys32_add_key | 1193 | .llong .compat_sys_add_key |
1194 | .llong .sys32_request_key /* 270 */ | 1194 | .llong .compat_sys_request_key /* 270 */ |
1195 | .llong .compat_sys_keyctl | 1195 | .llong .compat_sys_keyctl |
1196 | .llong .compat_sys_waitid | 1196 | .llong .compat_sys_waitid |
1197 | .llong .sys32_ioprio_set | 1197 | .llong .compat_sys_ioprio_set |
1198 | .llong .sys32_ioprio_get | 1198 | .llong .compat_sys_ioprio_get |
1199 | .llong .sys_inotify_init /* 275 */ | 1199 | .llong .sys_inotify_init /* 275 */ |
1200 | .llong .sys_inotify_add_watch | 1200 | .llong .sys_inotify_add_watch |
1201 | .llong .sys_inotify_rm_watch | 1201 | .llong .sys_inotify_rm_watch |
diff --git a/arch/ppc64/kernel/ptrace32.c b/arch/ppc64/kernel/ptrace32.c index fb8c22d6084a..2e1df3ddd9fb 100644 --- a/arch/ppc64/kernel/ptrace32.c +++ b/arch/ppc64/kernel/ptrace32.c | |||
@@ -40,7 +40,7 @@ | |||
40 | * in exit.c or in signal.c. | 40 | * in exit.c or in signal.c. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | int sys32_ptrace(long request, long pid, unsigned long addr, unsigned long data) | 43 | int compat_sys_ptrace(long request, long pid, unsigned long addr, unsigned long data) |
44 | { | 44 | { |
45 | struct task_struct *child; | 45 | struct task_struct *child; |
46 | int ret = -EPERM; | 46 | int ret = -EPERM; |