mirror of
https://github.com/torvalds/linux.git
synced 2026-04-27 19:12:29 -04:00
drm/i915: Move context management under GEM
Keep track of the GEM contexts underneath i915->gem.contexts and assign them their own lock for the purposes of list management. v2: Focus on lock tracking; ctx->vm is protected by ctx->mutex v3: Correct split with removal of logical HW ID Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191004134015.13204-15-chris@chris-wilson.co.uk
This commit is contained in:
@@ -42,7 +42,10 @@ mock_context(struct drm_i915_private *i915,
|
||||
if (!ppgtt)
|
||||
goto err_put;
|
||||
|
||||
mutex_lock(&ctx->mutex);
|
||||
__set_ppgtt(ctx, &ppgtt->vm);
|
||||
mutex_unlock(&ctx->mutex);
|
||||
|
||||
i915_vm_put(&ppgtt->vm);
|
||||
}
|
||||
|
||||
@@ -65,7 +68,7 @@ void mock_context_close(struct i915_gem_context *ctx)
|
||||
|
||||
void mock_init_contexts(struct drm_i915_private *i915)
|
||||
{
|
||||
init_contexts(i915);
|
||||
init_contexts(&i915->gem.contexts);
|
||||
}
|
||||
|
||||
struct i915_gem_context *
|
||||
@@ -74,8 +77,6 @@ live_context(struct drm_i915_private *i915, struct drm_file *file)
|
||||
struct i915_gem_context *ctx;
|
||||
int err;
|
||||
|
||||
lockdep_assert_held(&i915->drm.struct_mutex);
|
||||
|
||||
ctx = i915_gem_create_context(i915, 0);
|
||||
if (IS_ERR(ctx))
|
||||
return ctx;
|
||||
|
||||
Reference in New Issue
Block a user