]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 444481 - Don't unmap the vDSO on s390x
authorAndreas Arnez <arnez@linux.ibm.com>
Thu, 9 Dec 2021 14:27:41 +0000 (15:27 +0100)
committerAndreas Arnez <arnez@linux.ibm.com>
Thu, 9 Dec 2021 17:23:22 +0000 (18:23 +0100)
Newer Linux kernels on s390x may use the vDSO as a "trampoline" for
syscall restart.  This means that the vDSO is no longer optional, and
unmapping it may lead to a segmentation fault when a system call restart
is performed.

So far Valgrind has been unmapping the vDSO on s390x.  Just don't do this
anymore.

NEWS
coregrind/m_initimg/initimg-linux.c

diff --git a/NEWS b/NEWS
index a0844428efdb4f54e0bdbb705779f891a1b725ab..5a151584033febb6870f334f8cb075a6e3213796 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 444242  s390x: Valgrind crashes on EXRL with negative offset
 444399  arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).
         == 434283
+444481  gdb_server test failures on s390x
 444495  dhat/tests/copy fails on s390x
 444571  PPC, fix the lxsibzx and lxsihzx so they only load their respective
         sized data.
index 7d02d55678fb232c2cf8c12a7d7602266e832cc1..95508ad1ed642a07da83603bcb33a5d92bee743c 100644 (file)
@@ -892,7 +892,8 @@ Addr setup_client_stack( void*  init_sp,
 #        if !defined(VGP_ppc32_linux) && !defined(VGP_ppc64be_linux) \
             && !defined(VGP_ppc64le_linux) \
             && !defined(VGP_mips32_linux) && !defined(VGP_mips64_linux) \
-            && !defined(VGP_nanomips_linux)
+            && !defined(VGP_nanomips_linux) \
+            && !defined(VGP_s390x_linux)
          case AT_SYSINFO_EHDR: {
             /* Trash this, because we don't reproduce it */
             const NSegment* ehdrseg = VG_(am_find_nsegment)((Addr)auxv->u.a_ptr);