aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/entry.S
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-11 17:22:16 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-21 22:38:16 -0400
commit363806ddd232b67fdb2bd7ec8c98527e481c25c4 (patch)
tree072ba502e997deca3a31834a21143d11956c616b /arch/parisc/kernel/entry.S
parentparisc: optimizations in copy_thread() and friends (diff)
downloadlinux-dev-363806ddd232b67fdb2bd7ec8c98527e481c25c4.tar.xz
linux-dev-363806ddd232b67fdb2bd7ec8c98527e481c25c4.zip
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/entry.S')
-rw-r--r--arch/parisc/kernel/entry.S22
1 files changed, 3 insertions, 19 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 47fb6ddcf12e..c9a9abd4bc58 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 */