OSDN Git Service

drm/i915: Wait for active retire before i915_active_fini()
authorNirmoy Das <nirmoy.das@intel.com>
Mon, 22 May 2023 12:42:05 +0000 (14:42 +0200)
committerNirmoy Das <nirmoy.das@intel.com>
Tue, 23 May 2023 17:29:09 +0000 (19:29 +0200)
i915_active_fini() finalizes the debug object, which can occur before
the active retires and deactivates the debug object. Wait for one
final time before calling i915_active_fini();

Closes:: https://gitlab.freedesktop.org/drm/intel/-/issues/8311
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230522124205.368-1-nirmoy.das@intel.com
drivers/gpu/drm/i915/i915_vma.c

index 20a4478..bad698b 100644 (file)
@@ -1710,6 +1710,8 @@ static void release_references(struct i915_vma *vma, struct intel_gt *gt,
        if (vm_ddestroy)
                i915_vm_resv_put(vma->vm);
 
+       /* Wait for async active retire */
+       i915_active_wait(&vma->active);
        i915_active_fini(&vma->active);
        GEM_WARN_ON(vma->resource);
        i915_vma_free(vma);