[PATCH 21/21] ctx-lockref
Chris Wilson
chris at chris-wilson.co.uk
Sat Jul 4 21:10:19 UTC 2020
---
drivers/gpu/drm/i915/mm/i915_acquire_ctx.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/mm/i915_acquire_ctx.c b/drivers/gpu/drm/i915/mm/i915_acquire_ctx.c
index 2467206ce215..180a04874125 100644
--- a/drivers/gpu/drm/i915/mm/i915_acquire_ctx.c
+++ b/drivers/gpu/drm/i915/mm/i915_acquire_ctx.c
@@ -21,8 +21,10 @@ int i915_acquire_ctx_lock(struct i915_acquire_ctx *ctx,
int err;
err = dma_resv_lock_interruptible(obj->base.resv, &ctx->ctx);
- if (!err)
+ if (!err) {
list_add_tail(&obj->mm.acquire_link, &ctx->acquire_list);
+ i915_gem_object_get(obj);
+ }
if (err == -EALREADY)
err = 0;
@@ -33,8 +35,10 @@ static void i915_acquire_ctx_unlock_all(struct i915_acquire_ctx *ctx)
{
struct drm_i915_gem_object *obj, *on;
- list_for_each_entry_safe(obj, on, &ctx->acquire_list, mm.acquire_link)
+ list_for_each_entry_safe(obj, on, &ctx->acquire_list, mm.acquire_link) {
i915_gem_object_unlock(obj);
+ i915_gem_object_put(obj);
+ }
INIT_LIST_HEAD(&ctx->acquire_list);
}
@@ -46,8 +50,10 @@ int i915_acquire_ctx_backoff(struct i915_acquire_ctx *ctx,
i915_acquire_ctx_unlock_all(ctx);
err = dma_resv_lock_slow_interruptible(obj->base.resv, &ctx->ctx);
- if (!err)
+ if (!err) {
list_add_tail(&obj->mm.acquire_link, &ctx->acquire_list);
+ i915_gem_object_get(obj);
+ }
return err;
}
--
2.20.1
More information about the Intel-gfx-trybot
mailing list