Commit 6d1f9fb3 authored by Joonas Lahtinen's avatar Joonas Lahtinen

drm/i915: Add __destroy_hw_context

__create_hw_context can use a good counterpart.
Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1486640065-13695-1-git-send-email-joonas.lahtinen@linux.intel.com
parent e1cc3db0
...@@ -351,6 +351,13 @@ __create_hw_context(struct drm_i915_private *dev_priv, ...@@ -351,6 +351,13 @@ __create_hw_context(struct drm_i915_private *dev_priv,
return ERR_PTR(ret); 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 * 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 * 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, ...@@ -375,8 +382,7 @@ i915_gem_create_context(struct drm_i915_private *dev_priv,
if (IS_ERR(ppgtt)) { if (IS_ERR(ppgtt)) {
DRM_DEBUG_DRIVER("PPGTT setup failed (%ld)\n", DRM_DEBUG_DRIVER("PPGTT setup failed (%ld)\n",
PTR_ERR(ppgtt)); PTR_ERR(ppgtt));
idr_remove(&file_priv->context_idr, ctx->user_handle); __destroy_hw_context(ctx, file_priv);
context_close(ctx);
return ERR_CAST(ppgtt); return ERR_CAST(ppgtt);
} }
...@@ -1038,8 +1044,7 @@ int i915_gem_context_destroy_ioctl(struct drm_device *dev, void *data, ...@@ -1038,8 +1044,7 @@ int i915_gem_context_destroy_ioctl(struct drm_device *dev, void *data,
return PTR_ERR(ctx); return PTR_ERR(ctx);
} }
idr_remove(&file_priv->context_idr, ctx->user_handle); __destroy_hw_context(ctx, file_priv);
context_close(ctx);
mutex_unlock(&dev->struct_mutex); mutex_unlock(&dev->struct_mutex);
DRM_DEBUG("HW context %d destroyed\n", args->ctx_id); DRM_DEBUG("HW context %d destroyed\n", args->ctx_id);
......
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