]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/panthor: Don't call drm_gpuvm_bo_extobj_add() if the object is private
authorBoris Brezillon <boris.brezillon@collabora.com>
Wed, 1 Apr 2026 13:48:49 +0000 (15:48 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Fri, 3 Apr 2026 11:23:28 +0000 (13:23 +0200)
drm_gpuvm_bo_extobj_add() is a NOP if the object is private, but it
forces us to take/release the VM resv lock, so let's do that only when
we know the object can be shared.

v3:
- New commit

v4:
- Collect R-bs

v5:
- No changes

v6:
- No changes

v7:
- No changes

Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Link: https://patch.msgid.link/20260401134854.2275433-6-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
drivers/gpu/drm/panthor/panthor_mmu.c

index ab67286e3a6e28f9b3fa221756b9de605fcaed52..ac11c8c6a863122abb988f598558b04120f61cfd 100644 (file)
@@ -1278,9 +1278,11 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
        }
 
        /* Insert BO into the extobj list last, when we know nothing can fail. */
-       dma_resv_lock(panthor_vm_resv(vm), NULL);
-       drm_gpuvm_bo_extobj_add(op_ctx->map.vm_bo);
-       dma_resv_unlock(panthor_vm_resv(vm));
+       if (bo->base.base.resv != panthor_vm_resv(vm)) {
+               dma_resv_lock(panthor_vm_resv(vm), NULL);
+               drm_gpuvm_bo_extobj_add(op_ctx->map.vm_bo);
+               dma_resv_unlock(panthor_vm_resv(vm));
+       }
 
        return 0;