|
@@ -27,10 +27,7 @@
|
|
; void *tls,
|
|
; void *tls,
|
|
; int __user *child_tidptr)
|
|
; int __user *child_tidptr)
|
|
|
|
|
|
-#define CLONE_VM 0x00000100
|
|
|
|
-#define CLONE_THREAD 0x00010000
|
|
|
|
#define CLONE_SETTLS 0x00080000
|
|
#define CLONE_SETTLS 0x00080000
|
|
-#define CLONE_THREAD_N_VM (CLONE_THREAD | CLONE_VM)
|
|
|
|
|
|
|
|
ENTRY(clone)
|
|
ENTRY(clone)
|
|
cmp r0, 0 ; @fn can't be NULL
|
|
cmp r0, 0 ; @fn can't be NULL
|
|
@@ -68,9 +65,7 @@ ENTRY(clone)
|
|
|
|
|
|
.Lnext_clone_quirk:
|
|
.Lnext_clone_quirk:
|
|
#ifdef RESET_PID
|
|
#ifdef RESET_PID
|
|
- mov_s r2, CLONE_THREAD_N_VM
|
|
+ bbit1 r12, 16, .Lgo_thread ; CLONE_THREAD = (1 << 16)
|
|
- and_s r12, r12, r2
|
|
|
|
- breq r2, r12, .Lgo_thread
|
|
|
|
|
|
|
|
mov r8, __NR_getpid
|
|
mov r8, __NR_getpid
|
|
ARC_TRAP_INSN ; r0 has PID
|
|
ARC_TRAP_INSN ; r0 has PID
|