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