Re: [PATCH 11/40] drm/i915/execlists: Onion unwind for logical_ring_init() failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 19/09/2018 20:55, Chris Wilson wrote:
Fix up the error unwind for logical_ring_init() failing by moving the

Could you say in the commit what was broken?

Regards,

Tvrtko

cleanup into the callers who own the various bits of state during
initialisation.

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
  drivers/gpu/drm/i915/intel_lrc.c | 18 +++++++++++-------
  1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index b4448b05d78a..3edb417caa7b 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -2415,7 +2415,7 @@ static int logical_ring_init(struct intel_engine_cs *engine)
ret = intel_engine_init_common(engine);
  	if (ret)
-		goto error;
+		return ret;
if (HAS_LOGICAL_RING_ELSQ(i915)) {
  		execlists->submit_reg = i915->regs +
@@ -2457,10 +2457,6 @@ static int logical_ring_init(struct intel_engine_cs *engine)
  	reset_csb_pointers(execlists);
return 0;
-
-error:
-	intel_logical_ring_cleanup(engine);
-	return ret;
  }
int logical_render_ring_init(struct intel_engine_cs *engine)
@@ -2483,10 +2479,14 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
  	engine->emit_breadcrumb = gen8_emit_breadcrumb_rcs;
  	engine->emit_breadcrumb_sz = gen8_emit_breadcrumb_rcs_sz;
- ret = intel_engine_create_scratch(engine, PAGE_SIZE);
+	ret = logical_ring_init(engine);
  	if (ret)
  		return ret;
+ ret = intel_engine_create_scratch(engine, PAGE_SIZE);
+	if (ret)
+		goto err_cleanup_common;
+
  	ret = intel_init_workaround_bb(engine);
  	if (ret) {
  		/*
@@ -2498,7 +2498,11 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
  			  ret);
  	}
- return logical_ring_init(engine);
+	return 0;
+
+err_cleanup_common:
+	intel_engine_cleanup_common(engine);
+	return ret;
  }
int logical_xcs_ring_init(struct intel_engine_cs *engine)

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux