]> www.infradead.org Git - users/hch/configfs.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)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 19 Jul 2024 07:32:36 +0000 (00:32 -0700)
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>
drivers/gpu/drm/xe/xe_vm.c

index cf3aea5d8cdceda8f2dca20024a2387bd049d6f0..6adb0ff09d40fcf639a16bfbdfe66fc6f0a8451d 100644 (file)
@@ -1670,6 +1670,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);
 }
 
@@ -1802,7 +1806,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)