summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2014-06-26 11:33:34 +0530
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2014-07-22 09:50:50 +0200
commitbe5ba36bf6e9278025e31924965e229f772262bf (patch)
treefe71bfd5751b7f7200254322f7f8a691006cff34 /libc
parentb6e08a6715893aaf52afd37b1201a600b0a6b81e (diff)
ARC: clone: Ensure that @fn returns back to clone
This showed up due to longstanding test/unistd/clone failure where post clone, the callback was not exiting and rather falling thru in into main program. Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/arc/clone.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/arc/clone.S b/libc/sysdeps/linux/arc/clone.S
index 79ebd065a..9aa8d92cd 100644
--- a/libc/sysdeps/linux/arc/clone.S
+++ b/libc/sysdeps/linux/arc/clone.S
@@ -49,8 +49,8 @@ ENTRY(clone)
blt .L__sys_err2 ; < 0 (signed) error
jnz [blink] ; Parent returns
- ; child jumps off to @fn with @arg as argument
- j.d [r10]
+ ; child jumps off to @fn with @arg as argument, and returns here
+ jl.d [r10]
mov r0, r11
; falls thru to _exit() with result from @fn (already in r0)