Skip to content

Commit

Permalink
parisc: switch to generic kernel_execve()
Browse files Browse the repository at this point in the history
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Oct 14, 2012
1 parent a44e060 commit 4e5ed85
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 32 deletions.
1 change: 1 addition & 0 deletions arch/parisc/include/asm/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -995,6 +995,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_KERNEL_EXECVE

#endif /* __ASSEMBLY__ */

Expand Down
28 changes: 6 additions & 22 deletions arch/parisc/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -741,28 +741,12 @@ ENTRY(ret_from_kernel_thread)
ldi 0, %r26
ENDPROC(ret_from_kernel_thread)

.import sys_execve, code
ENTRY(__execve)
copy %r2, %r15
copy %r30, %r16
ldo PT_SZ_ALGN(%r30), %r30
STREG %r26, PT_GR26(%r16)
STREG %r25, PT_GR25(%r16)
STREG %r24, PT_GR24(%r16)
#ifdef CONFIG_64BIT
ldo -16(%r30),%r29 /* Reference param save area */
#endif
BL sys_execve, %r2
copy %r16, %r26

cmpib,=,n 0,%r28,intr_return /* forward */

/* yes, this will trap and die. */
copy %r15, %r2
copy %r16, %r30
bv %r0(%r2)
nop
ENDPROC(__execve)
ENTRY(ret_from_kernel_execve)
mfctl %cr30, %r1
ldo THREAD_SZ_ALGN(%r1), %r30
b intr_return /* forward */
copy %r26,%r16 /* pt_regs into r16 */
ENDPROC(ret_from_kernel_execve)


/*
Expand Down
10 changes: 0 additions & 10 deletions arch/parisc/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,16 +337,6 @@ asmlinkage int sys_execve(struct pt_regs *regs)
return error;
}

extern int __execve(const char *filename,
const char *const argv[],
const char *const envp[], struct task_struct *task);
int kernel_execve(const char *filename,
const char *const argv[],
const char *const envp[])
{
return __execve(filename, argv, envp, current);
}

unsigned long
get_wchan(struct task_struct *p)
{
Expand Down

0 comments on commit 4e5ed85

Please sign in to comment.