From: Martin Cermak Date: Fri, 8 Aug 2025 21:38:33 +0000 (+0200) Subject: Review the vmsplice syscall wrapper X-Git-Tag: VALGRIND_3_26_0~243 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efae8bf8b8927f714c2d2ea2d757d0a71a7dc9ad;p=thirdparty%2Fvalgrind.git Review the vmsplice syscall wrapper Reuse the vmsplice syscall wrapper in coregrind/m_syswrap/syswrap-linux.c for mips64 as well. And make sure arm64-linux and riscv64-linux also use the POST vmsplice wrapper. --- diff --git a/NEWS b/NEWS index a38078277..1b2e3871c 100644 --- a/NEWS +++ b/NEWS @@ -71,6 +71,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 507868 futimesat doesn't handle AT_FDCWD 507873 Make fchmodat and fchmodat2 syscall wrappers accept AT_FDCWD 507897 Allow for patching LTP sources +508029 Review the vmsplice syscall wrapper To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c index 40eb65432..f6f63a52e 100644 --- a/coregrind/m_syswrap/syswrap-arm64-linux.c +++ b/coregrind/m_syswrap/syswrap-arm64-linux.c @@ -623,7 +623,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_pselect6, sys_pselect6), // 72 LINXY(__NR_ppoll, sys_ppoll), // 73 LINXY(__NR_signalfd4, sys_signalfd4), // 74 - LINX_(__NR_vmsplice, sys_vmsplice), // 75 + LINXY(__NR_vmsplice, sys_vmsplice), // 75 LINX_(__NR_splice, sys_splice), // 76 LINX_(__NR_tee, sys_tee), // 77 LINXY(__NR_readlinkat, sys_readlinkat), // 78 diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c index bdfb20383..5234ccc37 100644 --- a/coregrind/m_syswrap/syswrap-mips64-linux.c +++ b/coregrind/m_syswrap/syswrap-mips64-linux.c @@ -215,7 +215,6 @@ SysRes sys_set_tls ( ThreadId tid, Addr tlsptr ) file, but that requires even more macro magic. */ DECL_TEMPLATE (mips_linux, sys_set_thread_area); -DECL_TEMPLATE (mips_linux, sys_vmsplice); DECL_TEMPLATE (mips_linux, sys_swapon); DECL_TEMPLATE (mips_linux, sys_swapoff); DECL_TEMPLATE (mips_linux, sys_setdomainname); @@ -230,14 +229,6 @@ DECL_TEMPLATE (mips_linux, sys_rt_sigreturn); DECL_TEMPLATE (mips_linux, sys_pipe); DECL_TEMPLATE (mips_linux, sys_fadvise64); -PRE(sys_vmsplice) -{ - PRINT("sys_vmsplice ( %ld, %#" FMT_REGWORD "x, %" FMT_REGWORD "u, %ld )", - SARG1, ARG2, ARG3, SARG4); - PRE_REG_READ4(long, "sys_vmsplice", int, fdin, struct vki_iovec *, v, - vki_size_t, len, int, flags); -} - PRE(sys_sched_rr_get_interval) { PRINT("sys_sched_rr_get_interval ( %ld, %#" FMT_REGWORD "x)", SARG1, ARG2); @@ -765,7 +756,7 @@ static SyscallTableEntry syscall_main_table[] = { LINX_ (__NR_splice, sys_splice), LINX_ (__NR_sync_file_range, sys_sync_file_range), LINX_ (__NR_tee, sys_tee), - PLAX_ (__NR_vmsplice, sys_vmsplice), + LINXY (__NR_vmsplice, sys_vmsplice), LINX_ (__NR_set_robust_list, sys_set_robust_list), LINXY (__NR_get_robust_list, sys_get_robust_list), LINXY (__NR_epoll_pwait, sys_epoll_pwait), diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c index a4da2be9b..17b39a89c 100644 --- a/coregrind/m_syswrap/syswrap-nanomips-linux.c +++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c @@ -628,7 +628,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY (__NR_pselect6, sys_pselect6), LINXY (__NR_ppoll, sys_ppoll), LINXY (__NR_signalfd4, sys_signalfd4), - LINX_ (__NR_vmsplice, sys_vmsplice), + LINXY (__NR_vmsplice, sys_vmsplice), LINX_ (__NR_splice, sys_splice), LINX_ (__NR_tee, sys_tee), LINXY (__NR_readlinkat, sys_readlinkat), diff --git a/coregrind/m_syswrap/syswrap-riscv64-linux.c b/coregrind/m_syswrap/syswrap-riscv64-linux.c index d572672f8..c3ab78ef5 100644 --- a/coregrind/m_syswrap/syswrap-riscv64-linux.c +++ b/coregrind/m_syswrap/syswrap-riscv64-linux.c @@ -383,7 +383,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_pselect6, sys_pselect6), /* 72 */ LINXY(__NR_ppoll, sys_ppoll), /* 73 */ LINXY(__NR_signalfd4, sys_signalfd4), /* 74 */ - LINX_(__NR_vmsplice, sys_vmsplice), /* 75 */ + LINXY(__NR_vmsplice, sys_vmsplice), /* 75 */ LINX_(__NR_splice, sys_splice), /* 76 */ LINX_(__NR_tee, sys_tee), /* 77 */ LINXY(__NR_readlinkat, sys_readlinkat), /* 78 */