From b918f710208889d579026627830a80b24be1513d Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 4 Feb 2021 17:21:56 +0100 Subject: [PATCH] PR423361 Adds io_uring support on arm64/aarch64 (and all other arches) io_uring syscalls only work on x86/amd64, but they can be enabled on all arches. Based on a patch by Nathan Ringo . https://bugs.kde.org/show_bug.cgi?id=423361 --- NEWS | 1 + coregrind/m_syswrap/syswrap-arm-linux.c | 4 ++++ coregrind/m_syswrap/syswrap-arm64-linux.c | 4 ++++ coregrind/m_syswrap/syswrap-mips32-linux.c | 4 ++++ coregrind/m_syswrap/syswrap-mips64-linux.c | 3 +++ coregrind/m_syswrap/syswrap-nanomips-linux.c | 3 +++ coregrind/m_syswrap/syswrap-ppc32-linux.c | 4 ++++ coregrind/m_syswrap/syswrap-ppc64-linux.c | 4 ++++ coregrind/m_syswrap/syswrap-s390x-linux.c | 4 ++++ 9 files changed, 31 insertions(+) diff --git a/NEWS b/NEWS index 2d0409157..57a3c27ec 100644 --- a/NEWS +++ b/NEWS @@ -69,6 +69,7 @@ n-i-bz helgrind: If hg_cli__realloc fails, return NULL. 424298 amd64: Implement RDSEED 426144 Fix "condition variable has not been initialized" on Fedora 33. 423195 PPC ISA 3.1 support is missing, part 1 +423361 Adds io_uring support on arm64/aarch64 (and all other arches) 425232 PPC ISA 3.1 support is missing, part 2 426123 PPC ISA 3.1 support is missing, part 3 427787 Support new faccessat2 linux syscall (439) diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c index 978aedbe6..428cb7c6f 100644 --- a/coregrind/m_syswrap/syswrap-arm-linux.c +++ b/coregrind/m_syswrap/syswrap-arm-linux.c @@ -1047,6 +1047,10 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval_time64), // 423 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c index 051d84989..024ece27f 100644 --- a/coregrind/m_syswrap/syswrap-arm64-linux.c +++ b/coregrind/m_syswrap/syswrap-arm64-linux.c @@ -826,6 +826,10 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_statx, sys_statx), // 397 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c index f35fb8bbb..62b085ea2 100644 --- a/coregrind/m_syswrap/syswrap-mips32-linux.c +++ b/coregrind/m_syswrap/syswrap-mips32-linux.c @@ -1132,6 +1132,10 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval_time64), // 423 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_ (__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c index bd260679c..b73c03da1 100644 --- a/coregrind/m_syswrap/syswrap-mips64-linux.c +++ b/coregrind/m_syswrap/syswrap-mips64-linux.c @@ -812,6 +812,9 @@ static SyscallTableEntry syscall_main_table[] = { LINX_ (__NR_syncfs, sys_syncfs), LINXY (__NR_statx, sys_statx), LINX_ (__NR_setns, sys_setns), + LINXY (__NR_io_uring_setup, sys_io_uring_setup), + LINXY (__NR_io_uring_enter, sys_io_uring_enter), + LINXY (__NR_io_uring_register, sys_io_uring_register), LINX_ (__NR_faccessat2, sys_faccessat2), }; diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c index a904745ab..14127b181 100644 --- a/coregrind/m_syswrap/syswrap-nanomips-linux.c +++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c @@ -821,6 +821,9 @@ static SyscallTableEntry syscall_main_table[] = { // (__NR_pkey_mprotect, sys_ni_syscall), // (__NR_pkey_alloc, sys_ni_syscall), // (__NR_pkey_free, sys_ni_syscall), + LINXY (__NR_io_uring_setup, sys_io_uring_setup), + LINXY (__NR_io_uring_enter, sys_io_uring_enter), + LINXY (__NR_io_uring_register, sys_io_uring_register), LINX_ (__NR_faccessat2, sys_faccessat2), }; diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c index 6ddd482d9..aad14f8ba 100644 --- a/coregrind/m_syswrap/syswrap-ppc32-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c @@ -1050,6 +1050,10 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval_time64), // 423 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c index 6f682923b..eea93a878 100644 --- a/coregrind/m_syswrap/syswrap-ppc64-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c @@ -1015,6 +1015,10 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_statx, sys_statx), // 383 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c index c5e4bb957..af6c4eb21 100644 --- a/coregrind/m_syswrap/syswrap-s390x-linux.c +++ b/coregrind/m_syswrap/syswrap-s390x-linux.c @@ -860,6 +860,10 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_statx, sys_statx), // 379 + LINXY(__NR_io_uring_setup, sys_io_uring_setup), // 425 + LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426 + LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 + LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; -- 2.11.4.GIT