]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/xe: Take a ref to xe file when user creates a VM
authorUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Thu, 18 Jul 2024 21:05:47 +0000 (14:05 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 15 Aug 2024 13:44:21 +0000 (09:44 -0400)
Take a reference to xef when user creates the VM and put the reference
when user destroys the VM.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240718210548.3580382-4-umesh.nerlige.ramappa@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit a2387e69493df3de706f14e4573ee123d23d5d34)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_vm.c

index 5b166fa03684e24e05e0309976ee2d378af5dff2..6bfcbd4e778a9e4118892a162223fd214b1aff96 100644 (file)
@@ -1601,6 +1601,10 @@ static void vm_destroy_work_func(struct work_struct *w)
                XE_WARN_ON(vm->pt_root[id]);
 
        trace_xe_vm_free(vm);
+
+       if (vm->xef)
+               xe_file_put(vm->xef);
+
        kfree(vm);
 }
 
@@ -1916,7 +1920,7 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
        }
 
        args->vm_id = id;
-       vm->xef = xef;
+       vm->xef = xe_file_get(xef);
 
        /* Record BO memory for VM pagetable created against client */
        for_each_tile(tile, xe, id)