From: Chris Wilson Date: Fri, 7 Dec 2018 09:02:12 +0000 (+0000) Subject: drm/i915/ringbuffer: EMIT_INVALIDATE after switch context X-Git-Tag: v5.1-rc1~23^2~28^2~95 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f2253bd9859bab65fdbc94bf5ce1876c403a11eb;p=uclinux-h8%2Flinux.git drm/i915/ringbuffer: EMIT_INVALIDATE after switch context The recommend procedure was to switch contexts (and mm) then invalidate the TLBs. Make it so. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20181207090213.14352-2-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 16084749adf5..74a4d587c312 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -1827,12 +1827,12 @@ static int ring_request_alloc(struct i915_request *request) */ request->reserved_space += LEGACY_REQUEST_SIZE; - /* Unconditionally invalidate GPU caches and TLBs. */ - ret = request->engine->emit_flush(request, EMIT_INVALIDATE); + ret = switch_context(request); if (ret) return ret; - ret = switch_context(request); + /* Unconditionally invalidate GPU caches and TLBs. */ + ret = request->engine->emit_flush(request, EMIT_INVALIDATE); if (ret) return ret;