drm/i915: Add __destroy_hw_context
__create_hw_context can use a good counterpart. Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1486640065-13695-1-git-send-email-joonas.lahtinen@linux.intel.com
This commit is contained in:
parent
e1cc3db020
commit
6d1f9fb312
|
@ -351,6 +351,13 @@ err_out:
|
|||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
static void __destroy_hw_context(struct i915_gem_context *ctx,
|
||||
struct drm_i915_file_private *file_priv)
|
||||
{
|
||||
idr_remove(&file_priv->context_idr, ctx->user_handle);
|
||||
context_close(ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* The default context needs to exist per ring that uses contexts. It stores the
|
||||
* context state of the GPU for applications that don't utilize HW contexts, as
|
||||
|
@ -375,8 +382,7 @@ i915_gem_create_context(struct drm_i915_private *dev_priv,
|
|||
if (IS_ERR(ppgtt)) {
|
||||
DRM_DEBUG_DRIVER("PPGTT setup failed (%ld)\n",
|
||||
PTR_ERR(ppgtt));
|
||||
idr_remove(&file_priv->context_idr, ctx->user_handle);
|
||||
context_close(ctx);
|
||||
__destroy_hw_context(ctx, file_priv);
|
||||
return ERR_CAST(ppgtt);
|
||||
}
|
||||
|
||||
|
@ -1038,8 +1044,7 @@ int i915_gem_context_destroy_ioctl(struct drm_device *dev, void *data,
|
|||
return PTR_ERR(ctx);
|
||||
}
|
||||
|
||||
idr_remove(&file_priv->context_idr, ctx->user_handle);
|
||||
context_close(ctx);
|
||||
__destroy_hw_context(ctx, file_priv);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
|
||||
DRM_DEBUG("HW context %d destroyed\n", args->ctx_id);
|
||||
|
|
Loading…
Reference in New Issue