* process to program RING_MODE, HWSP and re-enable submission.
         */
        ret = engine->init_hw(engine);
+       if (ret)
+               goto out;
 
+       error->reset_engine_count[engine->id]++;
 out:
        return ret;
 }
 
                enum intel_engine_hangcheck_action hangcheck_action;
                struct i915_address_space *vm;
                int num_requests;
+               u32 reset_count;
 
                /* position of active request inside the ring */
                u32 rq_head, rq_post, rq_tail;
 #define I915_WEDGED            (BITS_PER_LONG - 1)
 #define I915_RESET_ENGINE      (I915_WEDGED - I915_NUM_ENGINES)
 
+       /** Number of times an engine has been reset */
+       u32 reset_engine_count[I915_NUM_ENGINES];
+
        /**
         * Waitqueue to signal when a hang is detected. Used to for waiters
         * to release the struct_mutex for the reset to procede.
        return READ_ONCE(error->reset_count);
 }
 
+static inline u32 i915_reset_engine_count(struct i915_gpu_error *error,
+                                         struct intel_engine_cs *engine)
+{
+       return READ_ONCE(error->reset_engine_count[engine->id]);
+}
+
 struct drm_i915_gem_request *
 i915_gem_reset_prepare_engine(struct intel_engine_cs *engine);
 int i915_gem_reset_prepare(struct drm_i915_private *dev_priv);
 
        err_printf(m, "  hangcheck action timestamp: %lu, %u ms ago\n",
                   ee->hangcheck_timestamp,
                   jiffies_to_msecs(jiffies - ee->hangcheck_timestamp));
+       err_printf(m, "  engine reset count: %u\n", ee->reset_count);
 
        error_print_request(m, "  ELSP[0]: ", &ee->execlist[0]);
        error_print_request(m, "  ELSP[1]: ", &ee->execlist[1]);
        ee->hangcheck_timestamp = engine->hangcheck.action_timestamp;
        ee->hangcheck_action = engine->hangcheck.action;
        ee->hangcheck_stalled = engine->hangcheck.stalled;
+       ee->reset_count = i915_reset_engine_count(&dev_priv->gpu_error,
+                                                 engine);
 
        if (USES_PPGTT(dev_priv)) {
                int i;