mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 13:57:37 +07:00
drm/i915: don't leak the pin_map on error
Add some onion to populate_lr_context. v2: prefer err_unpin_ctx drop the fixes tag, worst case we just spew a warn before everything is cleaned up and balance is restored Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20180301114639.510-1-matthew.auld@intel.com
This commit is contained in:
parent
7c2f5bc5f0
commit
aaefa06a0e
@ -2574,8 +2574,10 @@ populate_lr_context(struct i915_gem_context *ctx,
|
||||
|
||||
defaults = i915_gem_object_pin_map(engine->default_state,
|
||||
I915_MAP_WB);
|
||||
if (IS_ERR(defaults))
|
||||
return PTR_ERR(defaults);
|
||||
if (IS_ERR(defaults)) {
|
||||
ret = PTR_ERR(defaults);
|
||||
goto err_unpin_ctx;
|
||||
}
|
||||
|
||||
memcpy(vaddr + start, defaults + start, engine->context_size);
|
||||
i915_gem_object_unpin_map(engine->default_state);
|
||||
@ -2593,9 +2595,9 @@ populate_lr_context(struct i915_gem_context *ctx,
|
||||
_MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT |
|
||||
CTX_CTRL_ENGINE_CTX_SAVE_INHIBIT);
|
||||
|
||||
err_unpin_ctx:
|
||||
i915_gem_object_unpin_map(ctx_obj);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
|
||||
|
Loading…
Reference in New Issue
Block a user