diff options
Diffstat (limited to 'arch/tile')
-rw-r--r-- | arch/tile/include/asm/compat.h | 6 | ||||
-rw-r--r-- | arch/tile/include/asm/processor.h | 3 | ||||
-rw-r--r-- | arch/tile/kernel/compat.c | 1 | ||||
-rw-r--r-- | arch/tile/kernel/intvec_64.S | 1 | ||||
-rw-r--r-- | arch/tile/kernel/process.c | 6 |
5 files changed, 6 insertions, 11 deletions
diff --git a/arch/tile/include/asm/compat.h b/arch/tile/include/asm/compat.h index 3063e6fc8daa..3bcf1b94b563 100644 --- a/arch/tile/include/asm/compat.h +++ b/arch/tile/include/asm/compat.h | |||
@@ -275,9 +275,6 @@ extern int compat_setup_rt_frame(int sig, struct k_sigaction *ka, | |||
275 | struct compat_sigaction; | 275 | struct compat_sigaction; |
276 | struct compat_siginfo; | 276 | struct compat_siginfo; |
277 | struct compat_sigaltstack; | 277 | struct compat_sigaltstack; |
278 | long compat_sys_execve(const char __user *path, | ||
279 | compat_uptr_t __user *argv, | ||
280 | compat_uptr_t __user *envp, struct pt_regs *); | ||
281 | long compat_sys_rt_sigaction(int sig, struct compat_sigaction __user *act, | 278 | long compat_sys_rt_sigaction(int sig, struct compat_sigaction __user *act, |
282 | struct compat_sigaction __user *oact, | 279 | struct compat_sigaction __user *oact, |
283 | size_t sigsetsize); | 280 | size_t sigsetsize); |
@@ -304,9 +301,6 @@ long compat_sys_sched_rr_get_interval(compat_pid_t pid, | |||
304 | struct compat_timespec __user *interval); | 301 | struct compat_timespec __user *interval); |
305 | 302 | ||
306 | /* These are the intvec_64.S trampolines. */ | 303 | /* These are the intvec_64.S trampolines. */ |
307 | long _compat_sys_execve(const char __user *path, | ||
308 | const compat_uptr_t __user *argv, | ||
309 | const compat_uptr_t __user *envp); | ||
310 | long _compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, | 304 | long _compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, |
311 | struct compat_sigaltstack __user *uoss_ptr); | 305 | struct compat_sigaltstack __user *uoss_ptr); |
312 | long _compat_sys_rt_sigreturn(void); | 306 | long _compat_sys_rt_sigreturn(void); |
diff --git a/arch/tile/include/asm/processor.h b/arch/tile/include/asm/processor.h index 8c4dd9ff91eb..9a83e531e843 100644 --- a/arch/tile/include/asm/processor.h +++ b/arch/tile/include/asm/processor.h | |||
@@ -239,6 +239,9 @@ unsigned long get_wchan(struct task_struct *p); | |||
239 | #define KSTK_TOP(task) (task_ksp0(task) - STACK_TOP_DELTA) | 239 | #define KSTK_TOP(task) (task_ksp0(task) - STACK_TOP_DELTA) |
240 | #define task_pt_regs(task) \ | 240 | #define task_pt_regs(task) \ |
241 | ((struct pt_regs *)(task_ksp0(task) - KSTK_PTREGS_GAP) - 1) | 241 | ((struct pt_regs *)(task_ksp0(task) - KSTK_PTREGS_GAP) - 1) |
242 | #define current_pt_regs() \ | ||
243 | ((struct pt_regs *)((stack_pointer | (THREAD_SIZE - 1)) - \ | ||
244 | (KSTK_PTREGS_GAP - 1)) - 1) | ||
242 | #define task_sp(task) (task_pt_regs(task)->sp) | 245 | #define task_sp(task) (task_pt_regs(task)->sp) |
243 | #define task_pc(task) (task_pt_regs(task)->pc) | 246 | #define task_pc(task) (task_pt_regs(task)->pc) |
244 | /* Aliases for pc and sp (used in fs/proc/array.c) */ | 247 | /* Aliases for pc and sp (used in fs/proc/array.c) */ |
diff --git a/arch/tile/kernel/compat.c b/arch/tile/kernel/compat.c index d67459b9ac2a..a8e5a847037c 100644 --- a/arch/tile/kernel/compat.c +++ b/arch/tile/kernel/compat.c | |||
@@ -103,7 +103,6 @@ long compat_sys_sched_rr_get_interval(compat_pid_t pid, | |||
103 | #define compat_sys_readahead sys32_readahead | 103 | #define compat_sys_readahead sys32_readahead |
104 | 104 | ||
105 | /* Call the trampolines to manage pt_regs where necessary. */ | 105 | /* Call the trampolines to manage pt_regs where necessary. */ |
106 | #define compat_sys_execve _compat_sys_execve | ||
107 | #define compat_sys_sigaltstack _compat_sys_sigaltstack | 106 | #define compat_sys_sigaltstack _compat_sys_sigaltstack |
108 | #define compat_sys_rt_sigreturn _compat_sys_rt_sigreturn | 107 | #define compat_sys_rt_sigreturn _compat_sys_rt_sigreturn |
109 | #define sys_clone _sys_clone | 108 | #define sys_clone _sys_clone |
diff --git a/arch/tile/kernel/intvec_64.S b/arch/tile/kernel/intvec_64.S index 7c06d597ffd0..73f6c0a648c4 100644 --- a/arch/tile/kernel/intvec_64.S +++ b/arch/tile/kernel/intvec_64.S | |||
@@ -1194,7 +1194,6 @@ PTREGS_SYSCALL(sys_execve, r3) | |||
1194 | PTREGS_SYSCALL(sys_sigaltstack, r2) | 1194 | PTREGS_SYSCALL(sys_sigaltstack, r2) |
1195 | PTREGS_SYSCALL_SIGRETURN(sys_rt_sigreturn, r0) | 1195 | PTREGS_SYSCALL_SIGRETURN(sys_rt_sigreturn, r0) |
1196 | #ifdef CONFIG_COMPAT | 1196 | #ifdef CONFIG_COMPAT |
1197 | PTREGS_SYSCALL(compat_sys_execve, r3) | ||
1198 | PTREGS_SYSCALL(compat_sys_sigaltstack, r2) | 1197 | PTREGS_SYSCALL(compat_sys_sigaltstack, r2) |
1199 | PTREGS_SYSCALL_SIGRETURN(compat_sys_rt_sigreturn, r0) | 1198 | PTREGS_SYSCALL_SIGRETURN(compat_sys_rt_sigreturn, r0) |
1200 | #endif | 1199 | #endif |
diff --git a/arch/tile/kernel/process.c b/arch/tile/kernel/process.c index 307d010696c9..9dc139127f86 100644 --- a/arch/tile/kernel/process.c +++ b/arch/tile/kernel/process.c | |||
@@ -614,8 +614,7 @@ out: | |||
614 | #ifdef CONFIG_COMPAT | 614 | #ifdef CONFIG_COMPAT |
615 | long compat_sys_execve(const char __user *path, | 615 | long compat_sys_execve(const char __user *path, |
616 | compat_uptr_t __user *argv, | 616 | compat_uptr_t __user *argv, |
617 | compat_uptr_t __user *envp, | 617 | compat_uptr_t __user *envp) |
618 | struct pt_regs *regs) | ||
619 | { | 618 | { |
620 | long error; | 619 | long error; |
621 | struct filename *filename; | 620 | struct filename *filename; |
@@ -624,7 +623,8 @@ long compat_sys_execve(const char __user *path, | |||
624 | error = PTR_ERR(filename); | 623 | error = PTR_ERR(filename); |
625 | if (IS_ERR(filename)) | 624 | if (IS_ERR(filename)) |
626 | goto out; | 625 | goto out; |
627 | error = compat_do_execve(filename->name, argv, envp, regs); | 626 | error = compat_do_execve(filename->name, argv, envp, |
627 | current_pt_regs()); | ||
628 | putname(filename); | 628 | putname(filename); |
629 | if (error == 0) | 629 | if (error == 0) |
630 | single_step_execve(); | 630 | single_step_execve(); |