diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-11 21:22:16 (GMT) |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-22 02:38:16 (GMT) |
commit | 363806ddd232b67fdb2bd7ec8c98527e481c25c4 (patch) | |
tree | 072ba502e997deca3a31834a21143d11956c616b /arch/parisc/kernel | |
parent | ff0ab8af9c3f36e7b6f716c3b9e8811a4202eec6 (diff) | |
download | linux-363806ddd232b67fdb2bd7ec8c98527e481c25c4.tar.xz |
parisc: switch to saner kernel_execve() semantics
ACKed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/parisc/kernel')
-rw-r--r-- | arch/parisc/kernel/entry.S | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index 47fb6dd..c9a9abd 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -727,26 +727,10 @@ ENTRY(ret_from_kernel_thread) LDREG TASK_PT_GR26(%r1), %r1 ble 0(%sr7, %r1) copy %r31, %r2 - -#ifdef CONFIG_64BIT - ldo -16(%r30),%r29 /* Reference param save area */ - loadgp /* Thread could have been in a module */ -#endif -#ifndef CONFIG_64BIT - b sys_exit -#else - load32 sys_exit, %r1 - bv %r0(%r1) -#endif - ldi 0, %r26 + b finish_child_return + nop ENDPROC(ret_from_kernel_thread) -ENTRY(ret_from_kernel_execve) - mfctl %cr30, %r1 - b syscall_exit /* forward */ - ldo THREAD_SZ_ALGN+FRAME_SIZE(%r1), %r30 -ENDPROC(ret_from_kernel_execve) - /* * struct task_struct *_switch_to(struct task_struct *prev, @@ -1721,7 +1705,7 @@ ENDPROC(sys_fork_wrapper) ENTRY(child_return) BL schedule_tail, %r2 nop - +finish_child_return: LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1 ldo TASK_REGS(%r1),%r1 /* get pt regs */ |