[Intel-gfx] [RFC] [PATCH 4/8] drm/i915/context: logical context free
Ben Widawsky
bwidawsk at gmail.com
Sat Feb 26 19:30:14 CET 2011
Another review only commit. The opposite of context alloc is context
free. Context free needs to employ context_fini (the opposite of context
init) which will switch back to the default context if needed. This
function is not currently implemented.
---
drivers/gpu/drm/i915/i915_context.c | 37 +++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_context.c b/drivers/gpu/drm/i915/i915_context.c
index 490aa5a..babceca 100644
--- a/drivers/gpu/drm/i915/i915_context.c
+++ b/drivers/gpu/drm/i915/i915_context.c
@@ -180,6 +180,43 @@ id_out:
return ret;
}
+static void logical_context_fini(struct drm_i915_gem_context *ctx)
+{
+
+}
+
+static int logical_context_free(struct drm_file *file, uint32_t id)
+{
+ struct drm_i915_gem_context *ctx;
+
+ if (WARN_ON(id == DEFAULT_CONTEXT_ID))
+ return 0;
+
+ /* ref and pin the object */
+ ctx = i915_get_context(file, id);
+ if (!ctx) {
+ DRM_ERROR("Couldn't find context %d", id);
+ return -EINVAL;
+ }
+
+ i915_release_context(ctx);
+
+ mutex_lock(&ctx->dev->struct_mutex);
+
+ logical_context_fini(ctx);
+ drm_gem_object_unreference(&ctx->obj->base);
+
+ mutex_unlock(&ctx->dev->struct_mutex);
+
+ context_destroy_id(ctx);
+
+ ctx->file = NULL;
+ ctx->dev = NULL;
+ kfree(ctx);
+
+ return 0;
+}
+
/**
* i915_context_create_ioctl() - not yet supported
*/
--
1.7.3.4
More information about the Intel-gfx
mailing list