[PATCH 09/30] tl-parse
Chris Wilson
chris at chris-wilson.co.uk
Thu Jul 9 02:56:05 UTC 2020
---
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 37 ++-----------------
1 file changed, 4 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index df05c3327481..1f4140cb886f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -1779,20 +1779,9 @@ static int __eb_parse(struct dma_fence_work *work)
pw->trampoline);
}
-static void __eb_parse_release(struct dma_fence_work *work)
-{
- struct eb_parse_work *pw = container_of(work, typeof(*pw), base);
-
- if (pw->trampoline)
- i915_active_release(&pw->trampoline->active);
- i915_active_release(&pw->shadow->active);
- i915_active_release(&pw->batch->active);
-}
-
static const struct dma_fence_work_ops eb_parse_ops = {
.name = "eb_parse",
.work = __eb_parse,
- .release = __eb_parse_release,
};
static inline int
@@ -1810,6 +1799,10 @@ parser_mark_active(struct eb_parse_work *pw, struct intel_timeline *tl)
{
int err;
+ err = i915_active_ref(&pw->batch->active, tl, &pw->base.dma);
+ if (err)
+ return err;
+
err = __parser_mark_active(pw->shadow, tl, &pw->base.dma);
if (err)
return err;
@@ -1834,20 +1827,6 @@ static int eb_parse_pipeline(struct i915_execbuffer *eb,
if (!pw)
return -ENOMEM;
- err = i915_active_acquire(&eb->batch->vma->active);
- if (err)
- goto err_free;
-
- err = i915_active_acquire(&shadow->active);
- if (err)
- goto err_batch;
-
- if (trampoline) {
- err = i915_active_acquire(&trampoline->active);
- if (err)
- goto err_shadow;
- }
-
dma_fence_work_init(&pw->base, &eb_parse_ops);
pw->engine = eb->engine;
@@ -1896,14 +1875,6 @@ static int eb_parse_pipeline(struct i915_execbuffer *eb,
i915_sw_fence_set_error_once(&pw->base.chain, err);
dma_fence_work_commit_imm(&pw->base);
return err;
-
-err_shadow:
- i915_active_release(&shadow->active);
-err_batch:
- i915_active_release(&eb->batch->vma->active);
-err_free:
- kfree(pw);
- return err;
}
static int eb_parse(struct i915_execbuffer *eb)
--
2.20.1
More information about the Intel-gfx-trybot
mailing list