@@ -751,6 +751,8 @@ void intel_ring_begin(struct drm_device *dev,
intel_wrap_ring_buffer(dev, ring);
if (unlikely(ring->space < n))
intel_wait_ring_buffer(dev, ring, n);
+
+ ring->space -= n;
}
void intel_ring_emit(struct drm_device *dev,
@@ -759,13 +761,12 @@ void intel_ring_emit(struct drm_device *dev,
unsigned int *virt = ring->virtual_start + ring->tail;
*virt = data;
ring->tail += 4;
- ring->tail &= ring->size - 1;
- ring->space -= 4;
}
void intel_ring_advance(struct drm_device *dev,
struct intel_ring_buffer *ring)
{
+ ring->tail &= ring->size - 1;
ring->advance_ring(dev, ring);
}