[PATCH 11/29] rearrange-lookup
Chris Wilson
chris at chris-wilson.co.uk
Thu Jul 9 01:08:35 UTC 2020
---
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 34 +++++++++----------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 4e6302d7ec25..031db70b2223 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -1575,10 +1575,6 @@ static int eb_relocate(struct i915_execbuffer *eb)
{
int err;
- err = eb_lookup_vmas(eb);
- if (err)
- return err;
-
err = eb_reserve_vm(eb);
if (err)
return err;
@@ -2194,6 +2190,13 @@ static int __eb_pin_engine(struct i915_execbuffer *eb, struct intel_context *ce)
if (err)
return err;
+ eb->engine = ce->engine;
+ eb->context = ce;
+
+ err = eb_lookup_vmas(eb);
+ if (err)
+ goto err_unpin;
+
/*
* Take a local wakeref for preparing to dispatch the execbuf as
* we expect to access the hardware fairly frequently in the
@@ -2240,9 +2243,6 @@ static int __eb_pin_engine(struct i915_execbuffer *eb, struct intel_context *ce)
retire_requests(tl);
}
- eb->engine = ce->engine;
- eb->context = ce;
-
err = __eb_pin_reloc_engine(eb);
if (err)
goto err_exit;
@@ -2700,16 +2700,6 @@ i915_gem_do_execbuffer(struct drm_device *dev,
if (fences)
signal_fence_array(&eb, fences);
- if (out_fence) {
- if (err == 0) {
- fd_install(out_fence_fd, out_fence->file);
- args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
- args->rsvd2 |= (u64)out_fence_fd << 32;
- out_fence_fd = -1;
- } else {
- fput(out_fence->file);
- }
- }
i915_request_put(eb.request);
err_batch_unpin:
@@ -2727,6 +2717,16 @@ i915_gem_do_execbuffer(struct drm_device *dev,
err_destroy:
eb_destroy(&eb);
err_out_fence:
+ if (out_fence) {
+ if (err == 0) {
+ fd_install(out_fence_fd, out_fence->file);
+ args->rsvd2 &= GENMASK_ULL(31, 0); /* keep in-fence */
+ args->rsvd2 |= (u64)out_fence_fd << 32;
+ out_fence_fd = -1;
+ } else {
+ fput(out_fence->file);
+ }
+ }
if (out_fence_fd != -1)
put_unused_fd(out_fence_fd);
err_in_fence:
--
2.20.1
More information about the Intel-gfx-trybot
mailing list