parisc: switch to generic kernel_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
a44e060fc5
commit
4e5ed85ab5
|
@ -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_SIGACTION
|
||||||
#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
|
||||||
|
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
|
|
|
@ -741,28 +741,12 @@ ENTRY(ret_from_kernel_thread)
|
||||||
ldi 0, %r26
|
ldi 0, %r26
|
||||||
ENDPROC(ret_from_kernel_thread)
|
ENDPROC(ret_from_kernel_thread)
|
||||||
|
|
||||||
.import sys_execve, code
|
ENTRY(ret_from_kernel_execve)
|
||||||
ENTRY(__execve)
|
mfctl %cr30, %r1
|
||||||
copy %r2, %r15
|
ldo THREAD_SZ_ALGN(%r1), %r30
|
||||||
copy %r30, %r16
|
b intr_return /* forward */
|
||||||
ldo PT_SZ_ALGN(%r30), %r30
|
copy %r26,%r16 /* pt_regs into r16 */
|
||||||
STREG %r26, PT_GR26(%r16)
|
ENDPROC(ret_from_kernel_execve)
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -337,16 +337,6 @@ out:
|
||||||
return error;
|
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
|
unsigned long
|
||||||
get_wchan(struct task_struct *p)
|
get_wchan(struct task_struct *p)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue