summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-10-28 09:46:01 +0100
committerChristian Brauner <brauner@kernel.org>2025-11-04 22:04:48 +0100
commit305e6b167c596dac4ba9f8b324c973e50aa3025d (patch)
tree87a440410602732db58c1c541b150322dd44d5c8
parent8b64f54c81d5baaef7fe117caa2f565be50ba440 (diff)
selftests/coredump: handle edge-triggered epoll correctly
by putting the file descriptor into non-blocking mode. Link: https://patch.msgid.link/20251028-work-coredump-signal-v1-16-ca449b7b7aa0@kernel.org Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--tools/testing/selftests/coredump/coredump_test_helpers.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/testing/selftests/coredump/coredump_test_helpers.c b/tools/testing/selftests/coredump/coredump_test_helpers.c
index 7512a8ef73d3..116c797090a1 100644
--- a/tools/testing/selftests/coredump/coredump_test_helpers.c
+++ b/tools/testing/selftests/coredump/coredump_test_helpers.c
@@ -291,6 +291,14 @@ void process_coredump_worker(int fd_coredump, int fd_peer_pidfd, int fd_core_fil
int epfd = -1;
int exit_code = EXIT_FAILURE;
struct epoll_event ev;
+ int flags;
+
+ /* Set socket to non-blocking mode for edge-triggered epoll */
+ flags = fcntl(fd_coredump, F_GETFL, 0);
+ if (flags < 0)
+ goto out;
+ if (fcntl(fd_coredump, F_SETFL, flags | O_NONBLOCK) < 0)
+ goto out;
epfd = epoll_create1(0);
if (epfd < 0)