Commit 8f4f9a3b authored by Thomas Hellström's avatar Thomas Hellström
Browse files

drm/i915: Fix vma resource freeing



In some cases we use leftover kfree() instead of i915_vma_resource_free().
Fix this.

Fixes: 2f6b90da ("drm/i915: Use vma resources for async unbinding")
Reported-by: default avatarRobert Beckett <bob.beckett@collabora.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220119174734.213552-1-thomas.hellstrom@linux.intel.com
parent cec49bce
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -463,7 +463,7 @@ int i915_vma_bind(struct i915_vma *vma,
	if (vma->resource || !vma_res) {
		/* Rebinding with an additional I915_VMA_*_BIND */
		GEM_WARN_ON(!vma_flags);
		kfree(vma_res);
		i915_vma_resource_free(vma_res);
	} else {
		i915_vma_resource_init_from_vma(vma_res, vma);
		vma->resource = vma_res;
@@ -1406,7 +1406,7 @@ int i915_vma_pin_ww(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
err_unlock:
	mutex_unlock(&vma->vm->mutex);
err_vma_res:
	kfree(vma_res);
	i915_vma_resource_free(vma_res);
err_fence:
	if (work)
		dma_fence_work_commit_imm(&work->base);
+2 −1
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ struct i915_vma_resource *i915_vma_resource_alloc(void)
 */
void i915_vma_resource_free(struct i915_vma_resource *vma_res)
{
	if (vma_res)
		kmem_cache_free(slab_vma_resources, vma_res);
}