OSDN Git Service

drm/i915: Signal fence completion from i915_request_wait
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 19 Jun 2019 11:23:37 +0000 (12:23 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 19 Jun 2019 15:45:04 +0000 (16:45 +0100)
With the upcoming change to automanaged i915_active, the intent is that
whenever we wait on the set of active fences, they are signaled and
collected.  The requirement is that all successful returns from
i915_request_wait() signal the fence, so fixup the one remaining path
where we may return before the interrupt has been run.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190619112341.9082-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_request.c

index a195a92..31a631f 100644 (file)
@@ -1447,8 +1447,10 @@ long i915_request_wait(struct i915_request *rq,
        for (;;) {
                set_current_state(state);
 
-               if (i915_request_completed(rq))
+               if (i915_request_completed(rq)) {
+                       dma_fence_signal(&rq->fence);
                        break;
+               }
 
                if (signal_pending_state(state, current)) {
                        timeout = -ERESTARTSYS;