diff --git a/.pick_status.json b/.pick_status.json index a760fd62817..7a8d826e822 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2494,7 +2494,7 @@ "description": "tu/drm/virtio: Fix tu_wait_fence timeout handling", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f17c5297d7a01eb37815f96bbf3a87667a2f3261", "notes": null diff --git a/src/freedreno/vulkan/tu_knl_drm_virtio.cc b/src/freedreno/vulkan/tu_knl_drm_virtio.cc index 020210dd8af..6ba85cdb80f 100644 --- a/src/freedreno/vulkan/tu_knl_drm_virtio.cc +++ b/src/freedreno/vulkan/tu_knl_drm_virtio.cc @@ -427,10 +427,11 @@ tu_wait_fence(struct tu_device *dev, if (ret) goto out; - if (os_time_get_nano() >= end_time) - break; - ret = rsp->ret; + + if (timeout_ns != OS_TIMEOUT_INFINITE && + os_time_get_nano() >= end_time) + break; } while (ret == -ETIMEDOUT); out: