summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_lrc.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-09-26 11:17:19 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-09-27 10:48:59 +0100
commit7e44fc289d54aa3f1f37d6c9e5157f79011c6476 (patch)
treefdbc976376d5272efc1ec48ab4019307536d18c9 /drivers/gpu/drm/i915/intel_lrc.c
parent4e9767bc28e93139442847f023ff2fc0c2a21d34 (diff)
downloadop-kernel-dev-7e44fc289d54aa3f1f37d6c9e5157f79011c6476.zip
op-kernel-dev-7e44fc289d54aa3f1f37d6c9e5157f79011c6476.tar.gz
drm/i915/execlists: Notify context-out for lost requests
When cancelling requests, also send the notification to any listeners (gvt) that the request is no longer scheduled on hw. They may require to keep the in/out exactly balanced, and so the reuse after the reset may confuse the listener. Fixes: 221ab9719bf3 ("drm/i915/execlists: Unwind incomplete requests on resets") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Zhenyu Wang" <zhenyuw@linux.intel.com> Cc: "Wang, Zhi A" <zhi.a.wang@intel.com> Cc: MichaƂ Winiarski <michal.winiarski@intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170926101720.9479-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lrc.c')
-rw-r--r--drivers/gpu/drm/i915/intel_lrc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 2c07f3c..61cac26 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -578,7 +578,11 @@ execlist_cancel_port_requests(struct intel_engine_execlists *execlists)
unsigned int num_ports = ARRAY_SIZE(execlists->port);
while (num_ports-- && port_isset(port)) {
- i915_gem_request_put(port_request(port));
+ struct drm_i915_gem_request *rq = port_request(port);
+
+ execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
+ i915_gem_request_put(rq);
+
memset(port, 0, sizeof(*port));
port++;
}
OpenPOWER on IntegriCloud