Some tests aren't passed a GT directly and don't reference them, but run
only under the condition of the GT not being wedged. Update the top-level
selftest functions of these tests to abort when some GT is wedged.

Signed-off-by: Krzysztof Niemiec <[email protected]>
---

I made an assumption here, that if ANY of the GTs are wedged, the test
should abort. It is of course possible to make it so that only if ALL
GTs are wedged, the test should abort. Former is probably safer but if
there's good arguments for the latter I can change it.

 drivers/gpu/drm/i915/gem/selftests/huge_pages.c  |  8 ++++++--
 drivers/gpu/drm/i915/selftests/i915_active.c     |  8 ++++++--
 drivers/gpu/drm/i915/selftests/i915_perf.c       |  8 ++++++--
 drivers/gpu/drm/i915/selftests/i915_request.c    |  8 ++++++--
 .../gpu/drm/i915/selftests/intel_memory_region.c | 16 ++++++++++++----
 5 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c 
b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
index 44718e728291..a8ae65ddb073 100644
--- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
+++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
@@ -2012,14 +2012,18 @@ int i915_gem_huge_page_live_selftests(struct 
drm_i915_private *i915)
                SUBTEST(igt_ppgtt_huge_fill),
                SUBTEST(igt_ppgtt_64K),
        };
+       struct intel_gt *gt;
+       unsigned int id;
 
        if (!HAS_PPGTT(i915)) {
                pr_info("PPGTT not supported, skipping live-selftests\n");
                return 0;
        }
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        return i915_live_subtests(tests, i915);
 }
diff --git a/drivers/gpu/drm/i915/selftests/i915_active.c 
b/drivers/gpu/drm/i915/selftests/i915_active.c
index 9fea2fabeac4..4e1d3ccdf8c6 100644
--- a/drivers/gpu/drm/i915/selftests/i915_active.c
+++ b/drivers/gpu/drm/i915/selftests/i915_active.c
@@ -256,9 +256,13 @@ int i915_active_live_selftests(struct drm_i915_private 
*i915)
                SUBTEST(live_active_retire),
                SUBTEST(live_active_barrier),
        };
+       struct intel_gt *gt;
+       unsigned int id;
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        return i915_subtests(tests, i915);
 }
diff --git a/drivers/gpu/drm/i915/selftests/i915_perf.c 
b/drivers/gpu/drm/i915/selftests/i915_perf.c
index e9469e27f42a..e64d3b430994 100644
--- a/drivers/gpu/drm/i915/selftests/i915_perf.c
+++ b/drivers/gpu/drm/i915/selftests/i915_perf.c
@@ -425,13 +425,17 @@ int i915_perf_live_selftests(struct drm_i915_private 
*i915)
                SUBTEST(live_noa_gpr),
        };
        struct i915_perf *perf = &i915->perf;
+       struct intel_gt *gt;
+       unsigned int id;
        int err;
 
        if (!perf->metrics_kobj || !perf->ops.enable_metric_set)
                return 0;
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        err = alloc_empty_config(&i915->perf);
        if (err)
diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c 
b/drivers/gpu/drm/i915/selftests/i915_request.c
index e1a7c454a0a9..6bf8ba474497 100644
--- a/drivers/gpu/drm/i915/selftests/i915_request.c
+++ b/drivers/gpu/drm/i915/selftests/i915_request.c
@@ -3295,9 +3295,13 @@ int i915_request_perf_selftests(struct drm_i915_private 
*i915)
                SUBTEST(perf_series_engines),
                SUBTEST(perf_parallel_engines),
        };
+       struct intel_gt *gt;
+       unsigned int id;
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        return i915_subtests(tests, i915);
 }
diff --git a/drivers/gpu/drm/i915/selftests/intel_memory_region.c 
b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
index 8307390943a2..20f85db9e3f3 100644
--- a/drivers/gpu/drm/i915/selftests/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/selftests/intel_memory_region.c
@@ -1380,14 +1380,18 @@ int intel_memory_region_live_selftests(struct 
drm_i915_private *i915)
                SUBTEST(igt_lmem_write_cpu),
                SUBTEST(igt_lmem_write_gpu),
        };
+       struct intel_gt *gt;
+       unsigned int id;
 
        if (!HAS_LMEM(i915)) {
                pr_info("device lacks LMEM support, skipping\n");
                return 0;
        }
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        return i915_live_subtests(tests, i915);
 }
@@ -1397,9 +1401,13 @@ int intel_memory_region_perf_selftests(struct 
drm_i915_private *i915)
        static const struct i915_subtest tests[] = {
                SUBTEST(perf_memcpy),
        };
+       struct intel_gt *gt;
+       unsigned int id;
 
-       if (intel_gt_is_wedged(to_gt(i915)))
-               return 0;
+       for_each_gt(gt, i915, id) {
+               if (intel_gt_is_wedged(gt))
+                       return 0;
+       }
 
        return i915_live_subtests(tests, i915);
 }
-- 
2.55.0

Reply via email to