Loading arch/parisc/include/asm/unistd.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -996,6 +996,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_KERNEL_EXECVE #define __ARCH_WANT_KERNEL_EXECVE #define __ARCH_WANT_SYS_EXECVE #endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */ Loading arch/parisc/kernel/entry.S +0 −46 Original line number Original line Diff line number Diff line Loading @@ -1804,52 +1804,6 @@ ENTRY(sys_vfork_wrapper) ENDPROC(sys_vfork_wrapper) ENDPROC(sys_vfork_wrapper) .macro execve_wrapper execve LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 ldo TASK_REGS(%r1),%r1 /* get pt regs */ /* * Do we need to save/restore r3-r18 here? * I don't think so. why would new thread need old * threads registers? */ /* %arg0 - %arg3 are already saved for us. */ STREG %r2,-RP_OFFSET(%r30) ldo FRAME_SIZE(%r30),%r30 #ifdef CONFIG_64BIT ldo -16(%r30),%r29 /* Reference param save area */ #endif BL \execve,%r2 copy %r1,%arg0 ldo -FRAME_SIZE(%r30),%r30 LDREG -RP_OFFSET(%r30),%r2 /* If exec succeeded we need to load the args */ ldo -1024(%r0),%r1 cmpb,>>= %r28,%r1,error_\execve copy %r2,%r19 error_\execve: bv %r0(%r19) nop .endm .import sys_execve ENTRY(sys_execve_wrapper) execve_wrapper sys_execve ENDPROC(sys_execve_wrapper) #ifdef CONFIG_64BIT .import sys32_execve ENTRY(sys32_execve_wrapper) execve_wrapper sys32_execve ENDPROC(sys32_execve_wrapper) #endif ENTRY(sys_rt_sigreturn_wrapper) ENTRY(sys_rt_sigreturn_wrapper) LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 ldo TASK_REGS(%r26),%r26 /* get pt regs */ ldo TASK_REGS(%r26),%r26 /* get pt regs */ Loading arch/parisc/kernel/process.c +0 −23 Original line number Original line Diff line number Diff line Loading @@ -314,29 +314,6 @@ unsigned long thread_saved_pc(struct task_struct *t) return t->thread.regs.kpc; return t->thread.regs.kpc; } } /* * sys_execve() executes a new program. */ asmlinkage int sys_execve(struct pt_regs *regs) { int error; struct filename *filename; filename = getname((const char __user *) regs->gr[26]); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = do_execve(filename->name, (const char __user *const __user *) regs->gr[25], (const char __user *const __user *) regs->gr[24], regs); putname(filename); out: return error; } unsigned long unsigned long get_wchan(struct task_struct *p) get_wchan(struct task_struct *p) { { Loading arch/parisc/kernel/sys_parisc32.c +0 −22 Original line number Original line Diff line number Diff line Loading @@ -53,28 +53,6 @@ #define DBG(x) #define DBG(x) #endif #endif /* * sys32_execve() executes a new program. */ asmlinkage int sys32_execve(struct pt_regs *regs) { int error; struct filename *filename; DBG(("sys32_execve(%p) r26 = 0x%lx\n", regs, regs->gr[26])); filename = getname((const char __user *) regs->gr[26]); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = compat_do_execve(filename->name, compat_ptr(regs->gr[25]), compat_ptr(regs->gr[24]), regs); putname(filename); out: return error; } asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, int r22, int r21, int r20) int r22, int r21, int r20) { { Loading arch/parisc/kernel/syscall_table.S +1 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ ENTRY_SAME(creat) ENTRY_SAME(creat) ENTRY_SAME(link) ENTRY_SAME(link) ENTRY_SAME(unlink) /* 10 */ ENTRY_SAME(unlink) /* 10 */ ENTRY_DIFF(execve_wrapper) ENTRY_COMP(execve) ENTRY_SAME(chdir) ENTRY_SAME(chdir) /* See comments in kernel/time.c!!! Maybe we don't need this? */ /* See comments in kernel/time.c!!! Maybe we don't need this? */ ENTRY_COMP(time) ENTRY_COMP(time) Loading Loading
arch/parisc/include/asm/unistd.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -996,6 +996,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_KERNEL_EXECVE #define __ARCH_WANT_KERNEL_EXECVE #define __ARCH_WANT_SYS_EXECVE #endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */ Loading
arch/parisc/kernel/entry.S +0 −46 Original line number Original line Diff line number Diff line Loading @@ -1804,52 +1804,6 @@ ENTRY(sys_vfork_wrapper) ENDPROC(sys_vfork_wrapper) ENDPROC(sys_vfork_wrapper) .macro execve_wrapper execve LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 ldo TASK_REGS(%r1),%r1 /* get pt regs */ /* * Do we need to save/restore r3-r18 here? * I don't think so. why would new thread need old * threads registers? */ /* %arg0 - %arg3 are already saved for us. */ STREG %r2,-RP_OFFSET(%r30) ldo FRAME_SIZE(%r30),%r30 #ifdef CONFIG_64BIT ldo -16(%r30),%r29 /* Reference param save area */ #endif BL \execve,%r2 copy %r1,%arg0 ldo -FRAME_SIZE(%r30),%r30 LDREG -RP_OFFSET(%r30),%r2 /* If exec succeeded we need to load the args */ ldo -1024(%r0),%r1 cmpb,>>= %r28,%r1,error_\execve copy %r2,%r19 error_\execve: bv %r0(%r19) nop .endm .import sys_execve ENTRY(sys_execve_wrapper) execve_wrapper sys_execve ENDPROC(sys_execve_wrapper) #ifdef CONFIG_64BIT .import sys32_execve ENTRY(sys32_execve_wrapper) execve_wrapper sys32_execve ENDPROC(sys32_execve_wrapper) #endif ENTRY(sys_rt_sigreturn_wrapper) ENTRY(sys_rt_sigreturn_wrapper) LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 ldo TASK_REGS(%r26),%r26 /* get pt regs */ ldo TASK_REGS(%r26),%r26 /* get pt regs */ Loading
arch/parisc/kernel/process.c +0 −23 Original line number Original line Diff line number Diff line Loading @@ -314,29 +314,6 @@ unsigned long thread_saved_pc(struct task_struct *t) return t->thread.regs.kpc; return t->thread.regs.kpc; } } /* * sys_execve() executes a new program. */ asmlinkage int sys_execve(struct pt_regs *regs) { int error; struct filename *filename; filename = getname((const char __user *) regs->gr[26]); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = do_execve(filename->name, (const char __user *const __user *) regs->gr[25], (const char __user *const __user *) regs->gr[24], regs); putname(filename); out: return error; } unsigned long unsigned long get_wchan(struct task_struct *p) get_wchan(struct task_struct *p) { { Loading
arch/parisc/kernel/sys_parisc32.c +0 −22 Original line number Original line Diff line number Diff line Loading @@ -53,28 +53,6 @@ #define DBG(x) #define DBG(x) #endif #endif /* * sys32_execve() executes a new program. */ asmlinkage int sys32_execve(struct pt_regs *regs) { int error; struct filename *filename; DBG(("sys32_execve(%p) r26 = 0x%lx\n", regs, regs->gr[26])); filename = getname((const char __user *) regs->gr[26]); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = compat_do_execve(filename->name, compat_ptr(regs->gr[25]), compat_ptr(regs->gr[24]), regs); putname(filename); out: return error; } asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, int r22, int r21, int r20) int r22, int r21, int r20) { { Loading
arch/parisc/kernel/syscall_table.S +1 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ ENTRY_SAME(creat) ENTRY_SAME(creat) ENTRY_SAME(link) ENTRY_SAME(link) ENTRY_SAME(unlink) /* 10 */ ENTRY_SAME(unlink) /* 10 */ ENTRY_DIFF(execve_wrapper) ENTRY_COMP(execve) ENTRY_SAME(chdir) ENTRY_SAME(chdir) /* See comments in kernel/time.c!!! Maybe we don't need this? */ /* See comments in kernel/time.c!!! Maybe we don't need this? */ ENTRY_COMP(time) ENTRY_COMP(time) Loading