Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > intel_engine_init_globa_seqno() may be called from an uncontrolled > set-wedged path where we have given up waiting for broken hw and declare > it defunct. Along that path, any sanity checks that the hw is idle > before we adjust its state will expectedly fail, so we simply cannot. > Instead of asserting inside init_global_seqno, we move them to the > normal caller reset_all_global_seqno() as it handles runtime seqno > wraparound. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem_request.c | 4 ++++ > drivers/gpu/drm/i915/intel_engine_cs.c | 3 --- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c > index 483af8921060..d93a185c0f0a 100644 > --- a/drivers/gpu/drm/i915/i915_gem_request.c > +++ b/drivers/gpu/drm/i915/i915_gem_request.c > @@ -213,6 +213,10 @@ static int reset_all_global_seqno(struct drm_i915_private *i915, u32 seqno) > cond_resched(); > } > > + /* Check we are idle before we fiddle with hw state! */ > + GEM_BUG_ON(!intel_engine_is_idle(engine)); > + GEM_BUG_ON(i915_gem_active_isset(&engine->timeline->last_request)); > + > /* Finally reset hw state */ > intel_engine_init_global_seqno(engine, seqno); > tl->seqno = seqno; > diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c > index fbac94557ffa..19297e6aab41 100644 > --- a/drivers/gpu/drm/i915/intel_engine_cs.c > +++ b/drivers/gpu/drm/i915/intel_engine_cs.c > @@ -337,9 +337,6 @@ void intel_engine_init_global_seqno(struct intel_engine_cs *engine, u32 seqno) > { > struct drm_i915_private *dev_priv = engine->i915; > > - GEM_BUG_ON(!intel_engine_is_idle(engine)); > - GEM_BUG_ON(i915_gem_active_isset(&engine->timeline->last_request)); > - > /* Our semaphore implementation is strictly monotonic (i.e. we proceed > * so long as the semaphore value in the register/page is greater > * than the sync value), so whenever we reset the seqno, > -- > 2.13.2 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx