From 2aa33f41e62682b67e7b4ad8f4179cb801760abe Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Thu, 19 Mar 2026 11:12:24 +0100 Subject: [PATCH] tu/drm/virtio: Move set_iova into success path of virtio_bo_init_dmabuf set_iova() was called unconditionally after tu_bo_init(), even on the failure path where the BO has been zeroed. This would call set_iova() with res_id 0 and a stale iova, corrupting the iova mapping. Move set_iova() into the success branch so it is only called when tu_bo_init() succeeds. Fixes: db88a490b8d2 ("tu: Avoid extraneous set_iova") Signed-off-by: Valentine Burley (cherry picked from commit 7a96bc3187382eea0cd89cb46720b0908a7c3831) Part-of: --- .pick_status.json | 2 +- src/freedreno/vulkan/tu_knl_drm_virtio.cc | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 528da3d0d43..4d964fd08a0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3864,7 +3864,7 @@ "description": "tu/drm/virtio: Move set_iova into success path of virtio_bo_init_dmabuf", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "db88a490b8d257b5409dc2161c28838a6bd53160", "notes": null diff --git a/src/freedreno/vulkan/tu_knl_drm_virtio.cc b/src/freedreno/vulkan/tu_knl_drm_virtio.cc index 7615ed73721..6db0645e106 100644 --- a/src/freedreno/vulkan/tu_knl_drm_virtio.cc +++ b/src/freedreno/vulkan/tu_knl_drm_virtio.cc @@ -853,10 +853,9 @@ virtio_bo_init_dmabuf(struct tu_device *dev, memset(bo, 0, sizeof(*bo)); } else { *out_bo = bo; + set_iova(dev, bo->res_id, iova); } - set_iova(dev, bo->res_id, iova); - out_unlock: u_rwlock_wrunlock(&dev->dma_bo_lock); return result;