Fix SYS_clone on s390
authorStelian Pop <stelian@popies.net>
Fri, 20 May 2011 09:48:40 +0000 (09:48 +0000)
committerStelian Pop <stelian@popies.net>
Fri, 20 May 2011 09:48:40 +0000 (09:48 +0000)
CHANGES
dump/tape.c

diff --git a/CHANGES b/CHANGES
index 78d1a88fc708f3ca1f0fc78996f4100bcd67809f..ad21b75bb5bb567854c26e663bcd225bb808adce 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,4 @@
-$Id: CHANGES,v 1.321 2011/05/05 16:05:40 stelian Exp $
+$Id: CHANGES,v 1.322 2011/05/20 09:48:40 stelian Exp $
 
 
 Changes between versions 0.4b43 and 0.4b44 (released ?????????????)
@@ -22,6 +22,10 @@ Changes between versions 0.4b43 and 0.4b44 (released ?????????????)
        dumps were created (Debian bug #583093). Thanks to
        Mark Wooding <mdw@distorted.org.uk> for the patch.
 
+5.     Fix SYS_clone invocation on s390 architectures (Sourceforge
+       bug #3303235). Thanks to Adam Tkac <atkac@redhat.com> for
+       reporting the bug.
+
 Changes between versions 0.4b42 and 0.4b43 (released June 11, 2010)
 ===================================================================
 
index edcf5d691925a6532dd71e8b30f75514d8190109..aa0ecc457dd56df66dd2518e0f97651012af7aa7 100644 (file)
@@ -37,7 +37,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: tape.c,v 1.91 2009/06/18 09:50:54 stelian Exp $";
+       "$Id: tape.c,v 1.92 2011/05/20 09:48:40 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -211,8 +211,13 @@ static int gtperr = 0;
  * Neither is useful in our case, so this is easy to handle.
  */
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,49)
+#if __s390__
+/* child_stack, clone_flags, parent_tidptr, child_tidptr */
+#define CLONE_ARGS 0, SIGCHLD|CLONE_IO, NULL, NULL
+#else
 /* clone_flags, child_stack, parent_tidptr, child_tidptr */
 #define CLONE_ARGS SIGCHLD|CLONE_IO, 0, NULL, NULL
+#endif /* __s390__ */
 #else
 #define CLONE_ARGS SIGCHLD|CLONE_IO, 0
 #endif /* LINUX_VERSION_CODE */