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);
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);
}