drm/xe: Drop VM dma-resv lock on xe_sync_in_fence_get failure in exec IOCTL
authorMatthew Brost <matthew.brost@intel.com>
Tue, 5 Nov 2024 04:35:24 +0000 (20:35 -0800)
committerMatthew Brost <matthew.brost@intel.com>
Tue, 5 Nov 2024 19:16:42 +0000 (11:16 -0800)
Upon failure all locks need to be dropped before returning to the user.

Fixes: 58480c1c912f ("drm/xe: Skip VMAs pin when requesting signal to the last XE_EXEC")
Cc: <stable@vger.kernel.org>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241105043524.4062774-3-matthew.brost@intel.com
drivers/gpu/drm/xe/xe_exec.c

index 6de12f9..756b492 100644 (file)
@@ -224,6 +224,7 @@ retry:
                        fence = xe_sync_in_fence_get(syncs, num_syncs, q, vm);
                        if (IS_ERR(fence)) {
                                err = PTR_ERR(fence);
+                               xe_vm_unlock(vm);
                                goto err_unlock_list;
                        }
                        for (i = 0; i < num_syncs; i++)