From 28f24b21ee90475f5660724ebc7bca447e324331 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Thu, 19 Mar 2026 11:08:08 +0100 Subject: [PATCH] tu/drm/virtio: Add missing lock to virtio_bo_init_dmabuf Lock vma mutex when freeing iova in virtio_bo_init_dmabuf. Fixes: f17c5297d7a ("tu: Add virtgpu support") Signed-off-by: Valentine Burley (cherry picked from commit 28e3fb705210cad61e419c1b8ee2a979df965fe8) Part-of: --- .pick_status.json | 2 +- src/freedreno/vulkan/tu_knl_drm_virtio.cc | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 95f15943f3f..528da3d0d43 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3874,7 +3874,7 @@ "description": "tu/drm/virtio: Add missing lock to virtio_bo_init_dmabuf", "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 e063030d70f..7615ed73721 100644 --- a/src/freedreno/vulkan/tu_knl_drm_virtio.cc +++ b/src/freedreno/vulkan/tu_knl_drm_virtio.cc @@ -847,7 +847,9 @@ virtio_bo_init_dmabuf(struct tu_device *dev, result = tu_bo_init(dev, NULL, bo, handle, size, iova, TU_BO_ALLOC_NO_FLAGS, "dmabuf"); if (result != VK_SUCCESS) { + mtx_lock(&dev->vma_mutex); util_vma_heap_free(&dev->vma, iova, size); + mtx_unlock(&dev->vma_mutex); memset(bo, 0, sizeof(*bo)); } else { *out_bo = bo;