* [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue
@ 2026-05-06 15:17 Michael Menasherov via ltp
2026-05-06 15:17 ` [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test Michael Menasherov via ltp
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-06 15:17 UTC (permalink / raw)
To: ltp
Improve error handling coverage for futex syscalls by adding tests
for missing error conditions that were previously untested.
futex_wait06 verifies EFAULT is returned when uaddr or timeout
points to unmapped memory.
futex_wait07 verifies EINTR is returned when futex_wait() is
interrupted by a signal.
futex_wake05 verifies EFAULT is returned when uaddr points to
unmapped or PROT_NONE memory.
futex_cmp_requeue03 verifies EFAULT is returned when uaddr or
uaddr2 points to unmapped memory, and EACCES or EFAULT when uaddr
points to memory without read permission (PROT_NONE). The EACCES
behavior was introduced in kernel 5.9.
v2:
- Rebased on latest master
- Added [ltp] subject prefix
- Split into one patch per test case
Michael Menasherov (4):
futex_wait06: Add EFAULT error coverage test
futex_wait07: Add EINTR error coverage test
futex_wake05: Add EFAULT error coverage test
futex_cmp_requeue03: Add EFAULT and EACCES error coverage test
runtest/syscalls | 4 +
testcases/kernel/syscalls/futex/.gitignore | 4 +
.../syscalls/futex/futex_cmp_requeue03.c | 96 +++++++++++++++++++
.../kernel/syscalls/futex/futex_wait06.c | 73 ++++++++++++++
.../kernel/syscalls/futex/futex_wait07.c | 91 ++++++++++++++++++
.../kernel/syscalls/futex/futex_wake05.c | 86 +++++++++++++++++
6 files changed, 354 insertions(+)
create mode 100644 testcases/kernel/syscalls/futex/futex_cmp_requeue03.c
create mode 100644 testcases/kernel/syscalls/futex/futex_wait06.c
create mode 100644 testcases/kernel/syscalls/futex/futex_wait07.c
create mode 100644 testcases/kernel/syscalls/futex/futex_wake05.c
--
2.53.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test
2026-05-06 15:17 [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue Michael Menasherov via ltp
@ 2026-05-06 15:17 ` Michael Menasherov via ltp
2026-05-06 16:39 ` [LTP] " linuxtestproject.agent
2026-05-06 15:17 ` [LTP] [ltp v2 2/4] futex_wait07: Add EINTR " Michael Menasherov via ltp
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-06 15:17 UTC (permalink / raw)
To: ltp
---
runtest/syscalls | 1 +
testcases/kernel/syscalls/futex/.gitignore | 1 +
.../kernel/syscalls/futex/futex_wait06.c | 73 +++++++++++++++++++
3 files changed, 75 insertions(+)
create mode 100644 testcases/kernel/syscalls/futex/futex_wait06.c
diff --git a/runtest/syscalls b/runtest/syscalls
index df5dc02b5..621355e04 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -1905,3 +1905,4 @@ io_uring03 io_uring03
# Tests below may cause kernel memory leak
perf_event_open03 perf_event_open03
+futex_wait06 futex_wait06
diff --git a/testcases/kernel/syscalls/futex/.gitignore b/testcases/kernel/syscalls/futex/.gitignore
index 9d08ba7d3..56596dcb4 100644
--- a/testcases/kernel/syscalls/futex/.gitignore
+++ b/testcases/kernel/syscalls/futex/.gitignore
@@ -13,3 +13,4 @@
/futex_waitv01
/futex_waitv02
/futex_waitv03
+/futex_wait06
diff --git a/testcases/kernel/syscalls/futex/futex_wait06.c b/testcases/kernel/syscalls/futex/futex_wait06.c
new file mode 100644
index 000000000..8bb563fb2
--- /dev/null
+++ b/testcases/kernel/syscalls/futex/futex_wait06.c
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Red Hat, Inc.
+ */
+
+/*\
+ * Check that futex(FUTEX_WAIT) returns EFAULT when:
+ *
+ * 1) uaddr points to unmapped memory
+ * 2) timeout points to unmapped memory
+ */
+#include <errno.h>
+#include <sys/mman.h>
+
+#include "futextest.h"
+
+static futex_t futex = FUTEX_INITIALIZER;
+
+static struct futex_test_variants variants[] = {
+#if (__NR_futex != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX, .tstype = TST_KERN_OLD_TIMESPEC, .desc = "syscall with old kernel spec"},
+#endif
+
+#if (__NR_futex_time64 != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX64, .tstype = TST_KERN_TIMESPEC, .desc = "syscall time64 with kernel spec"},
+#endif
+};
+
+static struct testcase {
+ const char *desc;
+ futex_t *uaddr;
+ void *timeout;
+} testcases[2];
+
+static void run(unsigned int n)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ struct testcase *tc = &testcases[n];
+
+ TST_EXP_FAIL(futex_syscall(tv->fntype, tc->uaddr, FUTEX_WAIT, futex,
+ tc->timeout, NULL, 0, 0), EFAULT, "%s", tc->desc);
+}
+
+static void setup(void)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ void *bad;
+
+ tst_res(TINFO, "Testing variant: %s", tv->desc);
+ futex_supported_by_kernel(tv->fntype);
+
+ bad = SAFE_MMAP(NULL, getpagesize(), PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ SAFE_MUNMAP(bad, getpagesize());
+
+ testcases[0] = (struct testcase){
+ .desc = "uaddr points to unmapped memory",
+ .uaddr = bad,
+ .timeout = NULL,
+ };
+ testcases[1] = (struct testcase){
+ .desc = "timeout points to unmapped memory",
+ .uaddr = &futex,
+ .timeout = bad,
+ };
+}
+
+static struct tst_test test = {
+ .setup = setup,
+ .test = run,
+ .tcnt = ARRAY_SIZE(testcases),
+ .test_variants = ARRAY_SIZE(variants),
+};
--
2.53.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [ltp v2 2/4] futex_wait07: Add EINTR error coverage test
2026-05-06 15:17 [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue Michael Menasherov via ltp
2026-05-06 15:17 ` [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test Michael Menasherov via ltp
@ 2026-05-06 15:17 ` Michael Menasherov via ltp
2026-05-06 15:18 ` [LTP] [ltp v2 3/4] futex_wake05: Add EFAULT " Michael Menasherov via ltp
2026-05-06 15:18 ` [LTP] [ltp v2 4/4] futex_cmp_requeue03: Add EFAULT and EACCES " Michael Menasherov via ltp
3 siblings, 0 replies; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-06 15:17 UTC (permalink / raw)
To: ltp
---
runtest/syscalls | 1 +
testcases/kernel/syscalls/futex/.gitignore | 1 +
.../kernel/syscalls/futex/futex_wait07.c | 91 +++++++++++++++++++
3 files changed, 93 insertions(+)
create mode 100644 testcases/kernel/syscalls/futex/futex_wait07.c
diff --git a/runtest/syscalls b/runtest/syscalls
index 621355e04..75b7754db 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -1906,3 +1906,4 @@ io_uring03 io_uring03
# Tests below may cause kernel memory leak
perf_event_open03 perf_event_open03
futex_wait06 futex_wait06
+futex_wait07 futex_wait07
diff --git a/testcases/kernel/syscalls/futex/.gitignore b/testcases/kernel/syscalls/futex/.gitignore
index 56596dcb4..74ac9a926 100644
--- a/testcases/kernel/syscalls/futex/.gitignore
+++ b/testcases/kernel/syscalls/futex/.gitignore
@@ -14,3 +14,4 @@
/futex_waitv02
/futex_waitv03
/futex_wait06
+/futex_wait07
diff --git a/testcases/kernel/syscalls/futex/futex_wait07.c b/testcases/kernel/syscalls/futex/futex_wait07.c
new file mode 100644
index 000000000..c3063389a
--- /dev/null
+++ b/testcases/kernel/syscalls/futex/futex_wait07.c
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Red Hat, Inc.
+ */
+
+/*\
+ * Check that futex(FUTEX_WAIT) returns EINTR when interrupted by a signal.
+ * A child process blocks on futex_wait() with a long timeout. The parent
+ * waits for the child to enter sleep state, then sends SIGUSR1 to it.
+ * The child verifies it received EINTR and exits accordingly.
+ */
+
+#include <errno.h>
+#include <signal.h>
+
+#include "futextest.h"
+
+static futex_t *futex;
+
+static struct futex_test_variants variants[] = {
+#if (__NR_futex != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX, .tstype = TST_KERN_OLD_TIMESPEC, .desc = "syscall with old kernel spec"},
+#endif
+
+#if (__NR_futex_time64 != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX64, .tstype = TST_KERN_TIMESPEC, .desc = "syscall time64 with kernel spec"},
+#endif
+};
+
+/* We need a handler so SIGUSR1 is caught instead of killing the process.
+ * The empty body is needed, just receiving the signal is enough to
+ * interrupt futex_wait() and make it return into EINTR -1 status.
+ */
+static void sigusr1_handler(int sig LTP_ATTRIBUTE_UNUSED)
+{
+}
+
+static void do_child(void)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ struct sigaction sa;
+ struct tst_ts timeout;
+
+ sa.sa_handler = sigusr1_handler;
+ sa.sa_flags = 0;
+ SAFE_SIGEMPTYSET(&sa.sa_mask);
+ SAFE_SIGACTION(SIGUSR1, &sa, NULL);
+
+ timeout = tst_ts_from_ms(tv->tstype, 5000);
+ TST_EXP_FAIL(futex_wait(tv->fntype, futex, *futex, &timeout, 0), EINTR);
+ exit(0);
+}
+
+static void run(void)
+{
+ pid_t child;
+
+ child = SAFE_FORK();
+
+ if (child == 0)
+ do_child();
+
+ TST_PROCESS_STATE_WAIT(child, 'S', 0);
+ SAFE_KILL(child, SIGUSR1);
+}
+
+static void setup(void)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+
+ tst_res(TINFO, "Testing variant: %s", tv->desc);
+ futex_supported_by_kernel(tv->fntype);
+
+ futex = SAFE_MMAP(NULL, sizeof(*futex), PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
+ *futex = FUTEX_INITIALIZER;
+}
+
+static void cleanup(void)
+{
+ if (futex) {
+ SAFE_MUNMAP((void *)futex, sizeof(*futex));
+ }
+}
+
+static struct tst_test test = {
+ .setup = setup,
+ .cleanup = cleanup,
+ .test_all = run,
+ .test_variants = ARRAY_SIZE(variants),
+ .forks_child = 1,
+};
--
2.53.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [ltp v2 3/4] futex_wake05: Add EFAULT error coverage test
2026-05-06 15:17 [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue Michael Menasherov via ltp
2026-05-06 15:17 ` [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test Michael Menasherov via ltp
2026-05-06 15:17 ` [LTP] [ltp v2 2/4] futex_wait07: Add EINTR " Michael Menasherov via ltp
@ 2026-05-06 15:18 ` Michael Menasherov via ltp
2026-05-06 15:18 ` [LTP] [ltp v2 4/4] futex_cmp_requeue03: Add EFAULT and EACCES " Michael Menasherov via ltp
3 siblings, 0 replies; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-06 15:18 UTC (permalink / raw)
To: ltp
---
runtest/syscalls | 1 +
testcases/kernel/syscalls/futex/.gitignore | 1 +
.../kernel/syscalls/futex/futex_wake05.c | 86 +++++++++++++++++++
3 files changed, 88 insertions(+)
create mode 100644 testcases/kernel/syscalls/futex/futex_wake05.c
diff --git a/runtest/syscalls b/runtest/syscalls
index 75b7754db..4d85a1d26 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -1907,3 +1907,4 @@ io_uring03 io_uring03
perf_event_open03 perf_event_open03
futex_wait06 futex_wait06
futex_wait07 futex_wait07
+futex_wake05 futex_wake05
diff --git a/testcases/kernel/syscalls/futex/.gitignore b/testcases/kernel/syscalls/futex/.gitignore
index 74ac9a926..c11546e07 100644
--- a/testcases/kernel/syscalls/futex/.gitignore
+++ b/testcases/kernel/syscalls/futex/.gitignore
@@ -15,3 +15,4 @@
/futex_waitv03
/futex_wait06
/futex_wait07
+/futex_wake05
diff --git a/testcases/kernel/syscalls/futex/futex_wake05.c b/testcases/kernel/syscalls/futex/futex_wake05.c
new file mode 100644
index 000000000..1e9bd6435
--- /dev/null
+++ b/testcases/kernel/syscalls/futex/futex_wake05.c
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Red Hat, Inc.
+ */
+
+/*\
+ * Check that futex(FUTEX_WAKE) returns EFAULT when uaddr points to
+ * unmapped or PROT_NONE memory.
+ *
+ * Note: FUTEX_WAKE never reads *uaddr, so PROT_NONE triggers EFAULT
+ * (not EACCES). The EACCES behavior only applies to syscalls that read
+ * *uaddr (e.g. FUTEX_WAIT, FUTEX_CMP_REQUEUE).
+ */
+
+#include <errno.h>
+#include <sys/mman.h>
+#include "futextest.h"
+
+static futex_t *prot_none_addr;
+
+static struct futex_test_variants variants[] = {
+#if (__NR_futex != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX, .desc = "syscall with old kernel spec"},
+#endif
+
+#if (__NR_futex_time64 != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX64, .desc = "syscall time64 with kernel spec"},
+#endif
+};
+
+static struct testcase {
+ const char *desc;
+ futex_t *addr;
+ int exp_errno;
+} testcases[2];
+
+static void run(unsigned int n)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ struct testcase *tc = &testcases[n];
+
+ TST_EXP_FAIL(futex_wake(tv->fntype, tc->addr, 1, 0),
+ tc->exp_errno, "%s", tc->desc);
+}
+
+static void setup(void)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ size_t pagesize = getpagesize();
+ futex_t *unmapped;
+
+ tst_res(TINFO, "Testing variant: %s", tv->desc);
+ futex_supported_by_kernel(tv->fntype);
+
+ unmapped = SAFE_MMAP(NULL, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ SAFE_MUNMAP(unmapped, pagesize);
+
+ prot_none_addr = SAFE_MMAP(NULL, pagesize, PROT_NONE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ testcases[0] = (struct testcase){
+ .desc = "uaddr unmapped",
+ .addr = unmapped,
+ .exp_errno = EFAULT,
+ };
+ testcases[1] = (struct testcase){
+ .desc = "uaddr PROT_NONE",
+ .addr = prot_none_addr,
+ .exp_errno = EFAULT,
+ };
+}
+
+static void cleanup(void)
+{
+ if (prot_none_addr)
+ SAFE_MUNMAP(prot_none_addr, getpagesize());
+}
+
+static struct tst_test test = {
+ .setup = setup,
+ .cleanup = cleanup,
+ .test = run,
+ .tcnt = ARRAY_SIZE(testcases),
+ .test_variants = ARRAY_SIZE(variants),
+};
--
2.53.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [LTP] [ltp v2 4/4] futex_cmp_requeue03: Add EFAULT and EACCES error coverage test
2026-05-06 15:17 [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue Michael Menasherov via ltp
` (2 preceding siblings ...)
2026-05-06 15:18 ` [LTP] [ltp v2 3/4] futex_wake05: Add EFAULT " Michael Menasherov via ltp
@ 2026-05-06 15:18 ` Michael Menasherov via ltp
3 siblings, 0 replies; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-06 15:18 UTC (permalink / raw)
To: ltp
---
runtest/syscalls | 1 +
testcases/kernel/syscalls/futex/.gitignore | 1 +
.../syscalls/futex/futex_cmp_requeue03.c | 96 +++++++++++++++++++
3 files changed, 98 insertions(+)
create mode 100644 testcases/kernel/syscalls/futex/futex_cmp_requeue03.c
diff --git a/runtest/syscalls b/runtest/syscalls
index 4d85a1d26..65baa44dc 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -1908,3 +1908,4 @@ perf_event_open03 perf_event_open03
futex_wait06 futex_wait06
futex_wait07 futex_wait07
futex_wake05 futex_wake05
+futex_cmp_requeue03 futex_cmp_requeue03
diff --git a/testcases/kernel/syscalls/futex/.gitignore b/testcases/kernel/syscalls/futex/.gitignore
index c11546e07..231b6bd25 100644
--- a/testcases/kernel/syscalls/futex/.gitignore
+++ b/testcases/kernel/syscalls/futex/.gitignore
@@ -16,3 +16,4 @@
/futex_wait06
/futex_wait07
/futex_wake05
+/futex_cmp_requeue03
diff --git a/testcases/kernel/syscalls/futex/futex_cmp_requeue03.c b/testcases/kernel/syscalls/futex/futex_cmp_requeue03.c
new file mode 100644
index 000000000..099d5e35c
--- /dev/null
+++ b/testcases/kernel/syscalls/futex/futex_cmp_requeue03.c
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 Red Hat, Inc.
+ */
+
+/*\
+ * Check that futex(FUTEX_CMP_REQUEUE) returns EFAULT when uaddr or
+ * uaddr2 points to unmapped memory, and EACCES (or EFAULT on older kernels)
+ * when uaddr points to memory without read permission (PROT_NONE).
+ *
+ * The EACCES behavior for PROT_NONE was introduced in kernel 5.9.
+ */
+
+#include <errno.h>
+#include <sys/mman.h>
+
+#include "futextest.h"
+
+static futex_t futex_var = FUTEX_INITIALIZER;
+static futex_t *prot_none_addr;
+
+static struct futex_test_variants variants[] = {
+#if (__NR_futex != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX, .desc = "syscall with old kernel spec"},
+#endif
+
+#if (__NR_futex_time64 != __LTP__NR_INVALID_SYSCALL)
+ { .fntype = FUTEX_FN_FUTEX64, .desc = "syscall time64 with kernel spec"},
+#endif
+};
+
+static struct testcase {
+ const char *desc;
+ futex_t *uaddr;
+ futex_t *uaddr2;
+ int exp_errno;
+} testcases[3];
+
+static void run(unsigned int n)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ struct testcase *tc = &testcases[n];
+
+ TST_EXP_FAIL(futex_cmp_requeue(tv->fntype, tc->uaddr, futex_var,
+ tc->uaddr2, 1, 1, 0), tc->exp_errno, "%s", tc->desc);
+}
+
+static void setup(void)
+{
+ struct futex_test_variants *tv = &variants[tst_variant];
+ size_t pagesize = getpagesize();
+ futex_t *unmapped;
+
+ tst_res(TINFO, "Testing variant: %s", tv->desc);
+ futex_supported_by_kernel(tv->fntype);
+
+ unmapped = SAFE_MMAP(NULL, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ SAFE_MUNMAP(unmapped, pagesize);
+
+ prot_none_addr = SAFE_MMAP(NULL, pagesize, PROT_NONE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ testcases[0] = (struct testcase){
+ .desc = "uaddr unmapped",
+ .uaddr = unmapped,
+ .uaddr2 = &futex_var,
+ .exp_errno = EFAULT,
+ };
+ testcases[1] = (struct testcase){
+ .desc = "uaddr2 unmapped",
+ .uaddr = &futex_var,
+ .uaddr2 = unmapped,
+ .exp_errno = EFAULT,
+ };
+ testcases[2] = (struct testcase){
+ .desc = "uaddr PROT_NONE",
+ .uaddr = prot_none_addr,
+ .uaddr2 = &futex_var,
+ .exp_errno = tst_kvercmp(5, 9, 0) >= 0 ? EACCES : EFAULT,
+ };
+}
+
+static void cleanup(void)
+{
+ if (prot_none_addr)
+ SAFE_MUNMAP(prot_none_addr, getpagesize());
+}
+
+static struct tst_test test = {
+ .setup = setup,
+ .cleanup = cleanup,
+ .test = run,
+ .tcnt = ARRAY_SIZE(testcases),
+ .test_variants = ARRAY_SIZE(variants),
+};
--
2.53.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [LTP] futex_wait06: Add EFAULT error coverage test
2026-05-06 15:17 ` [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test Michael Menasherov via ltp
@ 2026-05-06 16:39 ` linuxtestproject.agent
0 siblings, 0 replies; 8+ messages in thread
From: linuxtestproject.agent @ 2026-05-06 16:39 UTC (permalink / raw)
To: Michael Menasherov; +Cc: ltp
Hi Michael,
All four patches are missing a commit body and Signed-off-by tag.
Please add at least one sentence explaining why each test is being added
(gap in coverage, related kernel change, regression, etc.), and add
your Signed-off-by trailer to each commit.
--- [PATCH 4/4] ---
On Wed, 6 May 2026 18:18:01 +0300, Michael Menasherov wrote:
> futex_cmp_requeue03: Add EFAULT and EACCES error coverage test
> + * The EACCES behavior for PROT_NONE was introduced in kernel 5.9.
> + .exp_errno = tst_kvercmp(5, 9, 0) >= 0 ? EACCES : EFAULT,
I cannot find a kernel code path that returns -EACCES for a PROT_NONE
futex address. get_futex_key() in kernel/futex/core.c returns -EFAULT
when get_user_pages_fast() fails on an inaccessible page, regardless of
whether the failure is due to unmapped or PROT_NONE memory. Please cite
the specific kernel commit that introduced this behaviour, or replace the
conditional with unconditional EFAULT.
[...]
---
Note:
Our agent completed the review of the patch. The agent can sometimes
produce false positives although often its findings are genuine. If you
find issues with the review, please comment this email or ignore the
suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] futex_wait06: Add EFAULT error coverage test
2026-05-07 11:18 [LTP] [PATCH v4 1/4] futex_wait06: Add EFAULT " Michael Menasherov via ltp
@ 2026-05-07 12:01 ` linuxtestproject.agent
2026-05-13 8:35 ` Michael Menasherov via ltp
0 siblings, 1 reply; 8+ messages in thread
From: linuxtestproject.agent @ 2026-05-07 12:01 UTC (permalink / raw)
To: Michael Menasherov; +Cc: ltp, LTP AI Reviewer
Hi Michael,
On Thu, 7 May 2026, Michael Menasherov wrote:
> [PATCH 1/4] futex_wait06: Add EFAULT error coverage test
> [PATCH 2/4] futex_wait07: Add EINTR error coverage test
> [PATCH 3/4] futex_wake05: Add EFAULT error coverage test
> [PATCH 4/4] futex_cmp_requeue03: Add EFAULT error coverage test
Reviewed-by: LTP AI Reviewer <ltp-ai@noreply.github.com>
---
Note:
Our agent completed the review of the patch. The full review can be
found at: (not available)
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] futex_wait06: Add EFAULT error coverage test
2026-05-07 12:01 ` [LTP] " linuxtestproject.agent
@ 2026-05-13 8:35 ` Michael Menasherov via ltp
0 siblings, 0 replies; 8+ messages in thread
From: Michael Menasherov via ltp @ 2026-05-13 8:35 UTC (permalink / raw)
To: linuxtestproject.agent; +Cc: ltp, LTP AI Reviewer
Hi,
Just a kind reminder about this patch series sent on May 7th.
The LTP AI Reviewer has already approved all four patches.
Would appreciate it if someone could take a look when time permits.
Thanks,
Michael Menasherov
On Thu, May 7, 2026 at 3:01 PM <linuxtestproject.agent@gmail.com> wrote:
> Hi Michael,
>
> On Thu, 7 May 2026, Michael Menasherov wrote:
> > [PATCH 1/4] futex_wait06: Add EFAULT error coverage test
> > [PATCH 2/4] futex_wait07: Add EINTR error coverage test
> > [PATCH 3/4] futex_wake05: Add EFAULT error coverage test
> > [PATCH 4/4] futex_cmp_requeue03: Add EFAULT error coverage test
>
> Reviewed-by: LTP AI Reviewer <ltp-ai@noreply.github.com>
>
> ---
> Note:
>
> Our agent completed the review of the patch. The full review can be
> found at: (not available)
>
> The agent can sometimes produce false positives although often its
> findings are genuine. If you find issues with the review, please
> comment this email or ignore the suggestions.
>
> Regards,
> LTP AI Reviewer
>
>
--
Michael Menasherov
Software Quality Engineer - Automotive Kernel
Red Hat <https://www.redhat.com/>
<https://www.redhat.com/>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-13 8:36 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-06 15:17 [LTP] [ltp v2 0/4] futex: Add error coverage tests for wait, wake and cmp_requeue Michael Menasherov via ltp
2026-05-06 15:17 ` [LTP] [ltp v2 1/4] futex_wait06: Add EFAULT error coverage test Michael Menasherov via ltp
2026-05-06 16:39 ` [LTP] " linuxtestproject.agent
2026-05-06 15:17 ` [LTP] [ltp v2 2/4] futex_wait07: Add EINTR " Michael Menasherov via ltp
2026-05-06 15:18 ` [LTP] [ltp v2 3/4] futex_wake05: Add EFAULT " Michael Menasherov via ltp
2026-05-06 15:18 ` [LTP] [ltp v2 4/4] futex_cmp_requeue03: Add EFAULT and EACCES " Michael Menasherov via ltp
-- strict thread matches above, loose matches on Subject: below --
2026-05-07 11:18 [LTP] [PATCH v4 1/4] futex_wait06: Add EFAULT " Michael Menasherov via ltp
2026-05-07 12:01 ` [LTP] " linuxtestproject.agent
2026-05-13 8:35 ` Michael Menasherov via ltp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox