Loading arch/sparc/include/asm/syscalls.h +0 −4 Original line number Diff line number Diff line Loading @@ -8,8 +8,4 @@ extern asmlinkage long sparc_do_fork(unsigned long clone_flags, struct pt_regs *regs, unsigned long stack_size); #ifndef __arch64__ extern asmlinkage int sparc_execve(struct pt_regs *regs); #endif #endif /* _SPARC64_SYSCALLS_H */ arch/sparc/include/asm/unistd.h +1 −1 Original line number Diff line number Diff line Loading @@ -45,8 +45,8 @@ #define __ARCH_WANT_COMPAT_SYS_TIME #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_SENDFILE #define __ARCH_WANT_SYS_EXECVE #endif #define __ARCH_WANT_SYS_EXECVE /* * "Conditional" syscalls Loading arch/sparc/kernel/entry.S +3 −16 Original line number Diff line number Diff line Loading @@ -806,23 +806,10 @@ sys_nis_syscall: call c_sys_nis_syscall mov %l5, %o7 .align 4 .globl sys_execve sys_execve: mov %o7, %l5 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg call sparc_execve mov %l5, %o7 .globl sunos_execv sunos_execv: st %g0, [%sp + STACKFRAME_SZ + PT_I2] call sparc_execve add %sp, STACKFRAME_SZ, %o0 b ret_sys_call ld [%sp + STACKFRAME_SZ + PT_I0], %o0 .globl sunos_execv b sys_execve clr %i2 .align 4 .globl sys_sparc_pipe Loading arch/sparc/kernel/process_32.c +0 −28 Original line number Diff line number Diff line Loading @@ -476,34 +476,6 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs) return 1; } /* * sparc_execve() executes a new program after the asm stub has set * things up for us. This should basically do what I want it to. */ asmlinkage int sparc_execve(struct pt_regs *regs) { int error, base = 0; struct filename *filename; /* Check for indirect call. */ if(regs->u_regs[UREG_G1] == 0) base = 1; filename = getname((char __user *)regs->u_regs[base + UREG_I0]); error = PTR_ERR(filename); if(IS_ERR(filename)) goto out; error = do_execve(filename->name, (const char __user *const __user *) regs->u_regs[base + UREG_I1], (const char __user *const __user *) regs->u_regs[base + UREG_I2], regs); putname(filename); out: return error; } unsigned long get_wchan(struct task_struct *task) { unsigned long pc, fp, bias = 0; Loading Loading
arch/sparc/include/asm/syscalls.h +0 −4 Original line number Diff line number Diff line Loading @@ -8,8 +8,4 @@ extern asmlinkage long sparc_do_fork(unsigned long clone_flags, struct pt_regs *regs, unsigned long stack_size); #ifndef __arch64__ extern asmlinkage int sparc_execve(struct pt_regs *regs); #endif #endif /* _SPARC64_SYSCALLS_H */
arch/sparc/include/asm/unistd.h +1 −1 Original line number Diff line number Diff line Loading @@ -45,8 +45,8 @@ #define __ARCH_WANT_COMPAT_SYS_TIME #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_COMPAT_SYS_SENDFILE #define __ARCH_WANT_SYS_EXECVE #endif #define __ARCH_WANT_SYS_EXECVE /* * "Conditional" syscalls Loading
arch/sparc/kernel/entry.S +3 −16 Original line number Diff line number Diff line Loading @@ -806,23 +806,10 @@ sys_nis_syscall: call c_sys_nis_syscall mov %l5, %o7 .align 4 .globl sys_execve sys_execve: mov %o7, %l5 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg call sparc_execve mov %l5, %o7 .globl sunos_execv sunos_execv: st %g0, [%sp + STACKFRAME_SZ + PT_I2] call sparc_execve add %sp, STACKFRAME_SZ, %o0 b ret_sys_call ld [%sp + STACKFRAME_SZ + PT_I0], %o0 .globl sunos_execv b sys_execve clr %i2 .align 4 .globl sys_sparc_pipe Loading
arch/sparc/kernel/process_32.c +0 −28 Original line number Diff line number Diff line Loading @@ -476,34 +476,6 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs) return 1; } /* * sparc_execve() executes a new program after the asm stub has set * things up for us. This should basically do what I want it to. */ asmlinkage int sparc_execve(struct pt_regs *regs) { int error, base = 0; struct filename *filename; /* Check for indirect call. */ if(regs->u_regs[UREG_G1] == 0) base = 1; filename = getname((char __user *)regs->u_regs[base + UREG_I0]); error = PTR_ERR(filename); if(IS_ERR(filename)) goto out; error = do_execve(filename->name, (const char __user *const __user *) regs->u_regs[base + UREG_I1], (const char __user *const __user *) regs->u_regs[base + UREG_I2], regs); putname(filename); out: return error; } unsigned long get_wchan(struct task_struct *task) { unsigned long pc, fp, bias = 0; Loading