Commit 7307e91b authored by Niranjana Vishwanathapura's avatar Niranjana Vishwanathapura Committed by Ramalingam C

drm/i915: Do not access rq->engine without a reference

In i915_fence_get_driver_name(), user may not hold a
reference to rq->engine. Hence do not access it. Instead,
store required device private pointer in 'rq->i915' and use it.
Signed-off-by: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Suggested-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Signed-off-by: default avatarRamalingam C <ramalingam.c@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220614184348.23746-2-ramalingam.c@intel.com
parent 7d809707
...@@ -60,7 +60,7 @@ static struct kmem_cache *slab_execute_cbs; ...@@ -60,7 +60,7 @@ static struct kmem_cache *slab_execute_cbs;
static const char *i915_fence_get_driver_name(struct dma_fence *fence) static const char *i915_fence_get_driver_name(struct dma_fence *fence)
{ {
return dev_name(to_request(fence)->engine->i915->drm.dev); return dev_name(to_request(fence)->i915->drm.dev);
} }
static const char *i915_fence_get_timeline_name(struct dma_fence *fence) static const char *i915_fence_get_timeline_name(struct dma_fence *fence)
...@@ -937,6 +937,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp) ...@@ -937,6 +937,7 @@ __i915_request_create(struct intel_context *ce, gfp_t gfp)
rq->engine = ce->engine; rq->engine = ce->engine;
rq->ring = ce->ring; rq->ring = ce->ring;
rq->execution_mask = ce->engine->mask; rq->execution_mask = ce->engine->mask;
rq->i915 = ce->engine->i915;
ret = intel_timeline_get_seqno(tl, rq, &seqno); ret = intel_timeline_get_seqno(tl, rq, &seqno);
if (ret) if (ret)
......
...@@ -196,6 +196,8 @@ struct i915_request { ...@@ -196,6 +196,8 @@ struct i915_request {
struct dma_fence fence; struct dma_fence fence;
spinlock_t lock; spinlock_t lock;
struct drm_i915_private *i915;
/** /**
* Context and ring buffer related to this request * Context and ring buffer related to this request
* Contexts are refcounted, so when this request is associated with a * Contexts are refcounted, so when this request is associated with a
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment