From 305e6b167c596dac4ba9f8b324c973e50aa3025d Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 28 Oct 2025 09:46:01 +0100 Subject: [PATCH] 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 Signed-off-by: Christian Brauner --- tools/testing/selftests/coredump/coredump_test_helpers.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/testing/selftests/coredump/coredump_test_helpers.c b/tools/testing/selftests/coredump/coredump_test_helpers.c index 7512a8ef73d38..116c797090a1a 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) -- 2.47.3