Commit d21fc111 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2022-09-21' of...

Merge tag 'drm-intel-fixes-2022-09-21' of git://anongit.freedesktop.org/drm/drm-intel

 into drm-fixes

2 gem context related fixes:
- to avoid a general protection failure when using perf/OA (Chris)
- to avoid kernel warnings on driver release (Janusz)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/Yyt1CV+YIjKQZZMB@intel.com
parents 521a547c d119888b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1269,6 +1269,10 @@ static void i915_gem_context_release_work(struct work_struct *work)
	trace_i915_context_free(ctx);
	GEM_BUG_ON(!i915_gem_context_is_closed(ctx));

	spin_lock(&ctx->i915->gem.contexts.lock);
	list_del(&ctx->link);
	spin_unlock(&ctx->i915->gem.contexts.lock);

	if (ctx->syncobj)
		drm_syncobj_put(ctx->syncobj);

@@ -1521,10 +1525,6 @@ static void context_close(struct i915_gem_context *ctx)

	ctx->file_priv = ERR_PTR(-EBADF);

	spin_lock(&ctx->i915->gem.contexts.lock);
	list_del(&ctx->link);
	spin_unlock(&ctx->i915->gem.contexts.lock);

	client = ctx->client;
	if (client) {
		spin_lock(&client->ctx_lock);
+2 −1
Original line number Diff line number Diff line
@@ -1191,7 +1191,8 @@ void i915_gem_driver_release(struct drm_i915_private *dev_priv)

	intel_uc_cleanup_firmwares(&to_gt(dev_priv)->uc);

	i915_gem_drain_freed_objects(dev_priv);
	/* Flush any outstanding work, including i915_gem_context.release_work. */
	i915_gem_drain_workqueue(dev_priv);

	drm_WARN_ON(&dev_priv->drm, !list_empty(&dev_priv->gem.contexts.list));
}