From 65541a5557e3aff5acadfd9bf113d0fd9a291c8b Mon Sep 17 00:00:00 2001 From: Maged Elnaggar Date: Tue, 14 Apr 2026 14:29:43 +0100 Subject: [PATCH] Fix that WSI layer display could end up with empty fd_set Moved FD_ZERO() and FD_SET() inside the do...while loop so the fd_set is re-initialized before each select() call Signed-off-by: Maged Elnaggar Change-Id: I63b9d472248ba4af150e1bcb235bf441c7e91c58 --- wsi/display/swapchain.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wsi/display/swapchain.cpp b/wsi/display/swapchain.cpp index 3299036..86d704a 100644 --- a/wsi/display/swapchain.cpp +++ b/wsi/display/swapchain.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024-2025 Arm Limited. + * Copyright (c) 2024-2026 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -359,11 +359,12 @@ void swapchain::present_image(const pending_present_request &pending_present) } fd_set fds; - FD_ZERO(&fds); - FD_SET(display->get_drm_fd(), &fds); do { + FD_ZERO(&fds); + FD_SET(display->get_drm_fd(), &fds); + struct timeval t; t.tv_sec = 1; t.tv_usec = 0;