From 1b706b4c90f58702488e8819eda9ecb9305edb7e Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Fri, 4 Oct 2024 10:05:11 +0200 Subject: [PATCH] v3dv: fix BO allocation `cleared_and_retried` variable is not required, as once the cache is empty, in the second retry it will retry it is already empty so it won't retry a new allocation. Fixes: 2adea940f1f ("v3dv/bo: adding a BO cache") Reviewed-by: Iago Toral Quiroga Signed-off-by: Juan A. Suarez Romero (cherry picked from commit f6766ccadbc900dbe5e49db51fd39f3a3d416182) Conflicts: src/broadcom/vulkan/v3dv_bo.c Part-of: --- .pick_status.json | 2 +- src/broadcom/vulkan/v3dv_bo.c | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 19a5e3ccdf1..0383aacf73d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4474,7 +4474,7 @@ "description": "v3dv: fix BO allocation", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "2adea940f1fc155032923cd84fc1cbb51459d0d5", "notes": null diff --git a/src/broadcom/vulkan/v3dv_bo.c b/src/broadcom/vulkan/v3dv_bo.c index 1b26abec325..aa337cacd07 100644 --- a/src/broadcom/vulkan/v3dv_bo.c +++ b/src/broadcom/vulkan/v3dv_bo.c @@ -244,20 +244,16 @@ v3dv_bo_alloc(struct v3dv_device *device, } } - retry: - ; - - bool cleared_and_retried = false; struct drm_v3d_create_bo create = { .size = size }; - int ret = v3dv_ioctl(device->pdevice->render_fd, - DRM_IOCTL_V3D_CREATE_BO, &create); + int ret; +retry: + ret = v3dv_ioctl(device->pdevice->render_fd, + DRM_IOCTL_V3D_CREATE_BO, &create); if (ret != 0) { - if (!list_is_empty(&device->bo_cache.time_list) && - !cleared_and_retried) { - cleared_and_retried = true; + if (!list_is_empty(&device->bo_cache.time_list)) { bo_cache_free_all(device, true); goto retry; }