diff mbox

[uclibc-ng-devel,1/3] arc: clone: Recover PID correctly

Message ID 1469783840-10472-2-git-send-email-abrodkin@synopsys.com
State Accepted
Headers show

Commit Message

Alexey Brodkin July 29, 2016, 9:17 a.m. UTC
Caught by tst-getpid1 test from uClibc's test-suite.

It looks like original implementation was not correct.
The code in question is supposed to recover PID of the new
thread. And by no means that could happen with clone() syscall
while getpid() does exactly this.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Acked-by: Vineet Gupta <vgupta@synopsys.com>
Reported-by: Eugeniy Paltsev <paltsev@synopsys.com>
---
 libc/sysdeps/linux/arc/clone.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/libc/sysdeps/linux/arc/clone.S b/libc/sysdeps/linux/arc/clone.S
index 3c1388e..dbb3fa7 100644
--- a/libc/sysdeps/linux/arc/clone.S
+++ b/libc/sysdeps/linux/arc/clone.S
@@ -72,7 +72,7 @@  ENTRY(clone)
 	and_s	r2, r2, r12
 	brne	r2, r12, .Lgo_thread
 
-	mov	r8, __NR_clone
+	mov	r8, __NR_getpid
 	ARC_TRAP_INSN		; r0 has PID
 	THREAD_SELF r1		; Get to struct pthread (just before TCB)
 	st	r0, [r1, PTHREAD_PID]