{
        struct intel_gt *gt = arg;
        struct i915_gpu_error *global = >->i915->gpu_error;
-       struct intel_engine_cs *engine = gt->engine[RCS0];
+       struct intel_engine_cs *engine;
        struct i915_request *rq;
        unsigned int reset_count;
        struct hang h;
        long timeout;
        int err;
 
+       engine = intel_selftest_find_any_engine(gt);
+
        if (!engine || !intel_engine_can_store_dword(engine))
                return 0;
 
                                 int (*fn)(void *),
                                 unsigned int flags)
 {
-       struct intel_engine_cs *engine = gt->engine[RCS0];
+       struct intel_engine_cs *engine;
        struct drm_i915_gem_object *obj;
        struct task_struct *tsk = NULL;
        struct i915_request *rq;
        if (!gt->ggtt->num_fences && flags & EXEC_OBJECT_NEEDS_FENCE)
                return 0;
 
+       engine = intel_selftest_find_any_engine(gt);
+
        if (!engine || !intel_engine_can_store_dword(engine))
                return 0;
 
 {
        struct intel_gt *gt = arg;
        struct i915_gpu_error *global = >->i915->gpu_error;
-       struct intel_engine_cs *engine = gt->engine[RCS0];
+       struct intel_engine_cs *engine;
        struct hang h;
        struct i915_request *rq;
        struct i915_gpu_coredump *error;
        int err;
 
+       engine = intel_selftest_find_any_engine(gt);
+
        /* Check that we can issue a global GPU and engine reset */
 
        if (!intel_has_reset_engine(gt))