|
From: <sv...@va...> - 2011-09-13 15:02:30
|
Author: florian
Date: 2011-09-13 15:57:35 +0100 (Tue, 13 Sep 2011)
New Revision: 12033
Log:
Fix the system call wrapper for the clone system call (s390x).
Fixes #281883. Patch by Christian Borntraeger (bor...@de...).
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-s390x-linux.c
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2011-09-12 20:22:38 UTC (rev 12032)
+++ trunk/NEWS 2011-09-13 14:57:35 UTC (rev 12033)
@@ -275,7 +275,9 @@
279027 - s390x: Provide support for CLCL and MVCL instructions
+281883 - s390x: Fix system call wrapper for "clone".
+
Release 3.6.1 (16 February 2011)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.6.1 is a bug fix release. It adds support for some SSE4
Modified: trunk/coregrind/m_syswrap/syswrap-s390x-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-s390x-linux.c 2011-09-12 20:22:38 UTC (rev 12032)
+++ trunk/coregrind/m_syswrap/syswrap-s390x-linux.c 2011-09-13 14:57:35 UTC (rev 12033)
@@ -938,13 +938,13 @@
UInt cloneflags;
PRINT("sys_clone ( %lx, %#lx, %#lx, %#lx, %#lx )",ARG1,ARG2,ARG3,ARG4, ARG5);
- PRE_REG_READ4(int, "clone",
+ PRE_REG_READ2(int, "clone",
void *, child_stack,
- unsigned long, flags,
- int *, parent_tidptr,
- int *, child_tidptr);
+ unsigned long, flags);
if (ARG2 & VKI_CLONE_PARENT_SETTID) {
+ if (VG_(tdict).track_pre_reg_read)
+ PRA3("clone(parent_tidptr)", int *, parent_tidptr);
PRE_MEM_WRITE("clone(parent_tidptr)", ARG3, sizeof(Int));
if (!VG_(am_is_valid_for_client)(ARG3, sizeof(Int),
VKI_PROT_WRITE)) {
@@ -953,6 +953,8 @@
}
}
if (ARG2 & (VKI_CLONE_CHILD_SETTID | VKI_CLONE_CHILD_CLEARTID)) {
+ if (VG_(tdict).track_pre_reg_read)
+ PRA4("clone(child_tidptr)", int *, child_tidptr);
PRE_MEM_WRITE("clone(child_tidptr)", ARG4, sizeof(Int));
if (!VG_(am_is_valid_for_client)(ARG4, sizeof(Int),
VKI_PROT_WRITE)) {
|