diff options
author | Chris Wilson | 2019-04-26 18:33:29 +0200 |
---|---|---|
committer | Chris Wilson | 2019-04-26 19:32:00 +0200 |
commit | fa9f668141f4e5590837845ffc1dc4f5aca7a0a5 (patch) | |
tree | 963257f0d969a25198ac4fcbb930728cc45ba29e /drivers/gpu/drm/i915/i915_request.c | |
parent | drm/i915/gvt: Pin the per-engine GVT shadow contexts (diff) | |
download | kernel-qcow2-linux-fa9f668141f4e5590837845ffc1dc4f5aca7a0a5.tar.gz kernel-qcow2-linux-fa9f668141f4e5590837845ffc1dc4f5aca7a0a5.tar.xz kernel-qcow2-linux-fa9f668141f4e5590837845ffc1dc4f5aca7a0a5.zip |
drm/i915: Export intel_context_instance()
We want to pass in a intel_context into intel_context_pin() and that
requires us to first be able to lookup the intel_context!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190426163336.15906-2-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_request.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index 5869c37a35e1..1a03ebcaf52e 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -785,6 +785,7 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx) struct drm_i915_private *i915 = engine->i915; struct intel_context *ce; struct i915_request *rq; + int err; /* * Preempt contexts are reserved for exclusive use to inject a @@ -798,13 +799,21 @@ i915_request_alloc(struct intel_engine_cs *engine, struct i915_gem_context *ctx) * GGTT space, so do this first before we reserve a seqno for * ourselves. */ - ce = intel_context_pin(ctx, engine); + ce = intel_context_instance(ctx, engine); if (IS_ERR(ce)) return ERR_CAST(ce); + err = intel_context_pin(ce); + if (err) { + rq = ERR_PTR(err); + goto err_put; + } + rq = i915_request_create(ce); intel_context_unpin(ce); +err_put: + intel_context_put(ce); return rq; } |