diff --git a/valgrind-3.18.1-s390x-vdso.patch b/valgrind-3.18.1-s390x-vdso.patch
new file mode 100644
index 0000000..501fc56
--- /dev/null
+++ b/valgrind-3.18.1-s390x-vdso.patch
@@ -0,0 +1,28 @@
+commit 99bf5dabf7865aaea7f2192373633e026c6fb16e
+Author: Andreas Arnez <arnez@linux.ibm.com>
+Date:   Thu Dec 9 15:27:41 2021 +0100
+
+    Bug 444481 - Don't unmap the vDSO on s390x
+    
+    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.
+
+diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
+index 7d02d5567..95508ad1e 100644
+--- a/coregrind/m_initimg/initimg-linux.c
++++ b/coregrind/m_initimg/initimg-linux.c
+@@ -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);
diff --git a/valgrind.spec b/valgrind.spec
index c5de217..204c8e2 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -3,7 +3,7 @@
 Summary: Tool for finding memory management bugs in programs
 Name: %{?scl_prefix}valgrind
 Version: 3.18.1
-Release: 6%{?dist}
+Release: 7%{?dist}
 Epoch: 1
 License: GPLv2+
 URL: http://www.valgrind.org/
@@ -131,6 +131,9 @@ Patch18: valgrind-3.18.1-demangle-namespace.patch
 # KDE#405377 Handle new Linux kernel feature: Restartable Sequences ("rseq")
 Patch19: valgrind-3.18.1-rseq-enosys.patch
 
+# KDE#444481  gdb_server test failures on s390x
+Patch20: valgrind-3.18.1-s390x-vdso.patch
+
 BuildRequires: make
 BuildRequires: glibc-devel
 
@@ -282,6 +285,7 @@ Valgrind User Manual for details.
 %patch17 -p1
 %patch18 -p1
 %patch19 -p1
+%patch20 -p1
 
 %build
 # LTO triggers undefined symbols in valgrind.  Valgrind has a --enable-lto
@@ -511,6 +515,9 @@ fi
 %endif
 
 %changelog
+* Sat Dec 11 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.18.1-7
+-Add valgrind-3.18.1-s390x-vdso.patch
+
 * Fri Dec 10 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.18.1-6
 - Add valgrind-3.18.1-rseq-enosys.patch