trace_i915_gem_request_wait_begin(req, flags);
+ if (flags & I915_WAIT_LOCKED)
+ add_wait_queue(errq, &reset);
+
if (!i915_sw_fence_done(&req->execute)) {
timeout = __i915_request_wait_for_execute(req, flags, timeout);
if (timeout < 0)
goto complete;
set_current_state(state);
- if (flags & I915_WAIT_LOCKED)
- add_wait_queue(errq, &reset);
-
intel_wait_init(&wait, req->global_seqno);
if (intel_engine_add_wait(req->engine, &wait))
/* In order to check that we haven't missed the interrupt
}
intel_engine_remove_wait(req->engine, &wait);
- if (flags & I915_WAIT_LOCKED)
- remove_wait_queue(errq, &reset);
__set_current_state(TASK_RUNNING);
complete:
+ if (flags & I915_WAIT_LOCKED)
+ remove_wait_queue(errq, &reset);
trace_i915_gem_request_wait_end(req);
return timeout;