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

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
......@@ -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);
......
......@@ -62,7 +62,8 @@ struct i915_vma_resource *i915_vma_resource_alloc(void)
*/
void i915_vma_resource_free(struct i915_vma_resource *vma_res)
{
kmem_cache_free(slab_vma_resources, vma_res);
if (vma_res)
kmem_cache_free(slab_vma_resources, vma_res);
}
static const char *get_driver_name(struct dma_fence *fence)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment