]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/coredump: handle edge-triggered epoll correctly
authorChristian Brauner <brauner@kernel.org>
Tue, 28 Oct 2025 08:46:01 +0000 (09:46 +0100)
committerChristian Brauner <brauner@kernel.org>
Tue, 4 Nov 2025 21:04:48 +0000 (22:04 +0100)
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>
tools/testing/selftests/coredump/coredump_test_helpers.c

index 7512a8ef73d38b3dc19c7d99c1fd5c9e35c9fe51..116c797090a1afb837673af9011252308d3b095d 100644 (file)
@@ -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)