@@ -823,9 +823,6 @@ static void i915_record_ring_state(struct drm_device *dev,
ering->hws = I915_READ(mmio);
}
- ering->cpu_ring_head = ring->default_ringbuf.head;
- ering->cpu_ring_tail = ring->default_ringbuf.tail;
-
ering->hangcheck_score = ring->hangcheck.score;
ering->hangcheck_action = ring->hangcheck.action;
@@ -881,6 +878,7 @@ static void i915_gem_record_rings(struct drm_device *dev,
{
struct drm_i915_private *dev_priv = dev->dev_private;
struct drm_i915_gem_request *request;
+ struct intel_ringbuffer *ringbuf;
int i, count;
for (i = 0; i < I915_NUM_RINGS; i++) {
@@ -927,8 +925,13 @@ static void i915_gem_record_rings(struct drm_device *dev,
}
}
+ ringbuf = intel_ringbuffer_get(ring,
+ request ? request->ctx : ring->default_context);
+ error->ring[i].cpu_ring_head = ringbuf->head;
+ error->ring[i].cpu_ring_tail = ringbuf->tail;
+
error->ring[i].ringbuffer =
- i915_error_ggtt_object_create(dev_priv, ring->default_ringbuf.obj);
+ i915_error_ggtt_object_create(dev_priv, ringbuf->obj);
if (ring->status_page.obj)
error->ring[i].hws_page =