diff --git a/valgrind-3.15.0-arm-preadv2-pwritev2.patch b/valgrind-3.15.0-arm-preadv2-pwritev2.patch
new file mode 100644
index 0000000..aa3e9f2
--- /dev/null
+++ b/valgrind-3.15.0-arm-preadv2-pwritev2.patch
@@ -0,0 +1,21 @@
+commit 2d040ce2c7fd328b4e8b0c2363ebe0c2ea2cbc9f
+Author: Mark Wielaard <mark@klomp.org>
+Date:   Sat Jan 25 15:10:22 2020 +0100
+
+    arm: Hook up preadv2 and pwritev2 syscalls.
+    
+    They work the same as on other linux architectures.
+
+diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
+index 93ebc3f4d..18468f07e 100644
+--- a/coregrind/m_syswrap/syswrap-arm-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm-linux.c
+@@ -1016,6 +1016,8 @@ static SyscallTableEntry syscall_main_table[] = {
+ 
+    LINX_(__NR_membarrier,        sys_membarrier),       // 389
+    LINX_(__NR_copy_file_range,   sys_copy_file_range),  // 391
++   LINXY(__NR_preadv2,           sys_preadv2),          // 392
++   LINX_(__NR_pwritev2,          sys_pwritev2),         // 393
+ 
+    LINXY(__NR_statx,             sys_statx),            // 397
+ 
diff --git a/valgrind.spec b/valgrind.spec
index da91956..13c07ac 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -162,6 +162,9 @@ Patch27: valgrind-3.15.0-ppc64-sigframe.patch
 # KDE#416753 new 32bit time syscalls for 2038+
 Patch28: valgrind-3.15.0-time64.patch
 
+# Upstream commit 2d040ce2c7fd328b4e8b0c2363ebe0c2ea2cbc9f
+Patch29: valgrind-3.15.0-arm-preadv2-pwritev2.patch
+
 BuildRequires: glibc-devel
 
 %if %{build_openmpi}
@@ -326,6 +329,7 @@ Valgrind User Manual for details.
 %patch26 -p1
 %patch27 -p1
 %patch28 -p1
+%patch29 -p1
 
 %build
 
@@ -548,6 +552,7 @@ fi
 %changelog
 * Fri Feb 28 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.15.0-19
 - Add valgrind-3.15.0-time64.patch
+- Add valgrind-3.15.0-arm-preadv2-pwritev2.patch
 
 * Fri Feb 14 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.15.0-18
 - Add valgrind-3.15.0-ppc64-sigframe.patch