Hi,
[...]
@@ -1265,10 +1264,15 @@ static void i915_gem_context_release_work(struct work_struct *work) struct i915_gem_context *ctx = container_of(work, typeof(*ctx), release_work); struct i915_address_space *vm;
- unsigned long flags;
trace_i915_context_free(ctx); GEM_BUG_ON(!i915_gem_context_is_closed(ctx));
- spin_lock_irqsave(&ctx->i915->gem.contexts.lock, flags);
- list_del(&ctx->link);
- spin_unlock_irqrestore(&ctx->i915->gem.contexts.lock, flags);
yah! this can't work from a worker.
Andi