[LTP] [PATCH v2] tst_clone: Fix child detection on sparc
Anders Roxell
anders.roxell@linaro.org
Tue Sep 29 10:42:53 CEST 2026
On sparc the clone syscall does not return 0 in the child. It returns
the parent pid, so the child thinks it is the parent.
Save the pid before the clone and compare it after.
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
lib/tst_clone.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/tst_clone.c b/lib/tst_clone.c
index 296cd40ac0a0..d7f005a2d2a5 100644
--- a/lib/tst_clone.c
+++ b/lib/tst_clone.c
@@ -20,6 +20,9 @@ pid_t tst_clone(const struct tst_clone_args *tst_args)
};
int flags;
pid_t pid = -1;
+#ifdef __sparc__
+ pid_t parent_pid = tst_getpid();
+#endif
tst_flush();
@@ -44,5 +47,10 @@ pid_t tst_clone(const struct tst_clone_args *tst_args)
if (pid == -1)
return -2;
+#ifdef __sparc__
+ if (pid == parent_pid)
+ pid = 0;
+#endif
+
return pid;
}
--
2.53.0
More information about the ltp
mailing list