summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-06-19 18:28:20 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-06-19 20:31:42 +0200
commit8ad01c1ae3541c6788a0e8ff00f25e8cf2d3bece (patch)
treeaa234492f8b528c00232367def856ce1d254a508
parent50cfc12d62f11812e2c6bd0b06b45590fee256c5 (diff)
drm/i915: simplify context_idr_cleanupfor-angela
The idr code already passes us the pointer associated with that id, so no need to look it up again. Also, we'll kill the idr right away, so there's no issue with leaving these dangling pointers behind - the current code does the same. v2: Also drop the file argument, spotted by Ben Widawsky. Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_gem_context.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index c2152ff40f4e..e58e8366f473 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -289,14 +289,9 @@ void i915_gem_context_fini(struct drm_device *dev)
static int context_idr_cleanup(int id, void *p, void *data)
{
- struct drm_file *file = (struct drm_file *)data;
- struct drm_i915_file_private *file_priv = file->driver_priv;
- struct i915_hw_context *ctx;
+ struct i915_hw_context *ctx = p;
BUG_ON(id == DEFAULT_CONTEXT_ID);
- ctx = i915_gem_context_get(file_priv, id);
- if (WARN_ON(ctx == NULL))
- return -ENXIO;
do_destroy(ctx);
@@ -308,7 +303,7 @@ void i915_gem_context_close(struct drm_device *dev, struct drm_file *file)
struct drm_i915_file_private *file_priv = file->driver_priv;
mutex_lock(&dev->struct_mutex);
- idr_for_each(&file_priv->context_idr, context_idr_cleanup, file);
+ idr_for_each(&file_priv->context_idr, context_idr_cleanup, NULL);
idr_destroy(&file_priv->context_idr);
mutex_unlock(&dev->struct_mutex);
}