Browse Source

drm/amdgpu: remove the context from amdgpu_job

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Christian König 10 years ago
parent
commit
3a185a33a2

+ 0 - 2
drivers/gpu/drm/amd/amdgpu/amdgpu.h

@@ -1046,7 +1046,6 @@ void amdgpu_ctx_fini(struct amdgpu_ctx *ctx);
 
 
 struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id);
 struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id);
 int amdgpu_ctx_put(struct amdgpu_ctx *ctx);
 int amdgpu_ctx_put(struct amdgpu_ctx *ctx);
-struct amdgpu_ctx *amdgpu_ctx_get_ref(struct amdgpu_ctx *ctx);
 
 
 uint64_t amdgpu_ctx_add_fence(struct amdgpu_ctx *ctx, struct amdgpu_ring *ring,
 uint64_t amdgpu_ctx_add_fence(struct amdgpu_ctx *ctx, struct amdgpu_ring *ring,
 			      struct fence *fence);
 			      struct fence *fence);
@@ -1267,7 +1266,6 @@ struct amdgpu_cs_parser {
 struct amdgpu_job {
 struct amdgpu_job {
 	struct amd_sched_job    base;
 	struct amd_sched_job    base;
 	struct amdgpu_device	*adev;
 	struct amdgpu_device	*adev;
-	struct amdgpu_ctx	*ctx;
 	struct drm_file		*owner;
 	struct drm_file		*owner;
 	struct amdgpu_ib	*ibs;
 	struct amdgpu_ib	*ibs;
 	uint32_t		num_ibs;
 	uint32_t		num_ibs;

+ 1 - 3
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

@@ -775,7 +775,6 @@ static int amdgpu_cs_dependencies(struct amdgpu_device *adev,
 static int amdgpu_cs_free_job(struct amdgpu_job *sched_job)
 static int amdgpu_cs_free_job(struct amdgpu_job *sched_job)
 {
 {
 	int i;
 	int i;
-	amdgpu_ctx_put(sched_job->ctx);
 	if (sched_job->ibs)
 	if (sched_job->ibs)
 		for (i = 0; i < sched_job->num_ibs; i++)
 		for (i = 0; i < sched_job->num_ibs; i++)
 			amdgpu_ib_free(sched_job->adev, &sched_job->ibs[i]);
 			amdgpu_ib_free(sched_job->adev, &sched_job->ibs[i]);
@@ -849,7 +848,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
 		job->ibs = parser->ibs;
 		job->ibs = parser->ibs;
 		job->num_ibs = parser->num_ibs;
 		job->num_ibs = parser->num_ibs;
 		job->owner = parser->filp;
 		job->owner = parser->filp;
-		job->ctx = amdgpu_ctx_get_ref(parser->ctx);
 		mutex_init(&job->job_lock);
 		mutex_init(&job->job_lock);
 		if (job->ibs[job->num_ibs - 1].user) {
 		if (job->ibs[job->num_ibs - 1].user) {
 			memcpy(&job->uf,  &parser->uf,
 			memcpy(&job->uf,  &parser->uf,
@@ -867,7 +865,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
 			goto out;
 			goto out;
 		}
 		}
 		cs->out.handle =
 		cs->out.handle =
-			amdgpu_ctx_add_fence(job->ctx, ring,
+			amdgpu_ctx_add_fence(parser->ctx, ring,
 					     &job->base.s_fence->base);
 					     &job->base.s_fence->base);
 		parser->ibs[parser->num_ibs - 1].sequence = cs->out.handle;
 		parser->ibs[parser->num_ibs - 1].sequence = cs->out.handle;
 
 

+ 0 - 7
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c

@@ -219,13 +219,6 @@ struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id)
 	return ctx;
 	return ctx;
 }
 }
 
 
-struct amdgpu_ctx *amdgpu_ctx_get_ref(struct amdgpu_ctx *ctx)
-{
-	if (ctx)
-		kref_get(&ctx->refcount);
-	return ctx;
-}
-
 int amdgpu_ctx_put(struct amdgpu_ctx *ctx)
 int amdgpu_ctx_put(struct amdgpu_ctx *ctx)
 {
 {
 	if (ctx == NULL)
 	if (ctx == NULL)