drm/i915: Don't print header in error state for non-existing CS
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 18 Nov 2014 12:27:07 +0000 (13:27 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 18 Nov 2014 15:23:13 +0000 (16:23 +0100)
This goes back to

commit 362b8af7ad1d91266aa4931e62be45c1e5cf753b
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date:   Thu Jan 30 00:19:38 2014 -0800

    drm/i915: Move per ring error state to ring_error

Spotted while reading error states.

Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
drivers/gpu/drm/i915/i915_gpu_error.c

index 89a2f3d..82111b8 100644 (file)
@@ -242,11 +242,15 @@ static const char *hangcheck_action_to_str(enum intel_ring_hangcheck_action a)
 
 static void i915_ring_error_state(struct drm_i915_error_state_buf *m,
                                  struct drm_device *dev,
-                                 struct drm_i915_error_ring *ring)
+                                 struct drm_i915_error_state *error,
+                                 int ring_idx)
 {
+       struct drm_i915_error_ring *ring = &error->ring[ring_idx];
+
        if (!ring->valid)
                return;
 
+       err_printf(m, "%s command stream:\n", ring_str(ring_idx));
        err_printf(m, "  HEAD: 0x%08x\n", ring->head);
        err_printf(m, "  TAIL: 0x%08x\n", ring->tail);
        err_printf(m, "  CTL: 0x%08x\n", ring->ctl);
@@ -388,10 +392,8 @@ int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
        if (INTEL_INFO(dev)->gen == 7)
                err_printf(m, "ERR_INT: 0x%08x\n", error->err_int);
 
-       for (i = 0; i < ARRAY_SIZE(error->ring); i++) {
-               err_printf(m, "%s command stream:\n", ring_str(i));
-               i915_ring_error_state(m, dev, &error->ring[i]);
-       }
+       for (i = 0; i < ARRAY_SIZE(error->ring); i++)
+               i915_ring_error_state(m, dev, error, i);
 
        for (i = 0; i < error->vm_count; i++) {
                err_printf(m, "vm[%d]\n", i);