aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/misc_64.S
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-09-12 18:32:42 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-09-30 23:31:19 -0400
commit58254e1002a82eb383c5977ad9fd5a451b91fe29 (patch)
treee03b441b252ec3630ceedbe266311c0a24812fd9 /arch/powerpc/kernel/misc_64.S
parentf322220d6159455da2b5a8a596d802c8695fed30 (diff)
powerpc: split ret_from_fork
... and get rid of in-kernel syscalls in kernel_thread() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/powerpc/kernel/misc_64.S')
-rw-r--r--arch/powerpc/kernel/misc_64.S34
1 files changed, 0 insertions, 34 deletions
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index 565b78625a32..5cfa8008693b 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -407,40 +407,6 @@ _GLOBAL(scom970_write)
407 407
408 408
409/* 409/*
410 * Create a kernel thread
411 * kernel_thread(fn, arg, flags)
412 */
413_GLOBAL(kernel_thread)
414 std r29,-24(r1)
415 std r30,-16(r1)
416 stdu r1,-STACK_FRAME_OVERHEAD(r1)
417 mr r29,r3
418 mr r30,r4
419 ori r3,r5,CLONE_VM /* flags */
420 oris r3,r3,(CLONE_UNTRACED>>16)
421 li r4,0 /* new sp (unused) */
422 li r0,__NR_clone
423 sc
424 bns+ 1f /* did system call indicate error? */
425 neg r3,r3 /* if so, make return code negative */
4261: cmpdi 0,r3,0 /* parent or child? */
427 bne 2f /* return if parent */
428 li r0,0
429 stdu r0,-STACK_FRAME_OVERHEAD(r1)
430 ld r2,8(r29)
431 ld r29,0(r29)
432 mtlr r29 /* fn addr in lr */
433 mr r3,r30 /* load arg and call fn */
434 blrl
435 li r0,__NR_exit /* exit after child exits */
436 li r3,0
437 sc
4382: addi r1,r1,STACK_FRAME_OVERHEAD
439 ld r29,-24(r1)
440 ld r30,-16(r1)
441 blr
442
443/*
444 * disable_kernel_fp() 410 * disable_kernel_fp()
445 * Disable the FPU. 411 * Disable the FPU.
446 */ 412 */