return space;
 }
 
-static inline int ring_space(struct intel_engine_cs *ring)
+static inline int ring_space(struct intel_ringbuffer *ringbuf)
 {
-       struct intel_ringbuffer *ringbuf = ring->buffer;
        return __ring_space(ringbuf->head & HEAD_ADDR, ringbuf->tail, ringbuf->size);
 }
 
        else {
                ringbuf->head = I915_READ_HEAD(ring);
                ringbuf->tail = I915_READ_TAIL(ring) & TAIL_ADDR;
-               ringbuf->space = ring_space(ring);
+               ringbuf->space = ring_space(ringbuf);
                ringbuf->last_retired_head = -1;
        }
 
                ringbuf->head = ringbuf->last_retired_head;
                ringbuf->last_retired_head = -1;
 
-               ringbuf->space = ring_space(ring);
+               ringbuf->space = ring_space(ringbuf);
                if (ringbuf->space >= n)
                        return 0;
        }
        ringbuf->head = ringbuf->last_retired_head;
        ringbuf->last_retired_head = -1;
 
-       ringbuf->space = ring_space(ring);
+       ringbuf->space = ring_space(ringbuf);
        return 0;
 }
 
        trace_i915_ring_wait_begin(ring);
        do {
                ringbuf->head = I915_READ_HEAD(ring);
-               ringbuf->space = ring_space(ring);
+               ringbuf->space = ring_space(ringbuf);
                if (ringbuf->space >= n) {
                        ret = 0;
                        break;
                iowrite32(MI_NOOP, virt++);
 
        ringbuf->tail = 0;
-       ringbuf->space = ring_space(ring);
+       ringbuf->space = ring_space(ringbuf);
 
        return 0;
 }