drm/amdgpu: remove the context from amdgpu_job
authorChristian König <christian.koenig@amd.com>
Thu, 20 Aug 2015 15:35:34 +0000 (17:35 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Aug 2015 14:48:27 +0000 (10:48 -0400)
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c

index 3c5487257ef0ff3384197a9335bddc5c027b6cd0..0088af1efd54a03ac6e3b6ede04eb0294ca1b9e5 100644 (file)
@@ -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);
 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,
                              struct fence *fence);
@@ -1267,7 +1266,6 @@ struct amdgpu_cs_parser {
 struct amdgpu_job {
        struct amd_sched_job    base;
        struct amdgpu_device    *adev;
-       struct amdgpu_ctx       *ctx;
        struct drm_file         *owner;
        struct amdgpu_ib        *ibs;
        uint32_t                num_ibs;
index 5d335522625ee7f5948cc48709d0cb893c4e512e..780c0113e8f829583fd2337e00402cd1c44b935e 100644 (file)
@@ -775,7 +775,6 @@ static int amdgpu_cs_dependencies(struct amdgpu_device *adev,
 static int amdgpu_cs_free_job(struct amdgpu_job *sched_job)
 {
        int i;
-       amdgpu_ctx_put(sched_job->ctx);
        if (sched_job->ibs)
                for (i = 0; i < sched_job->num_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->num_ibs = parser->num_ibs;
                job->owner = parser->filp;
-               job->ctx = amdgpu_ctx_get_ref(parser->ctx);
                mutex_init(&job->job_lock);
                if (job->ibs[job->num_ibs - 1].user) {
                        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;
                }
                cs->out.handle =
-                       amdgpu_ctx_add_fence(job->ctx, ring,
+                       amdgpu_ctx_add_fence(parser->ctx, ring,
                                             &job->base.s_fence->base);
                parser->ibs[parser->num_ibs - 1].sequence = cs->out.handle;
 
index f024effa60f9b3101d4d4e7a82ba5c46d54dbed0..20cbc4eb5a6f7f7bfc75b4c80f010eee061d8499 100644 (file)
@@ -219,13 +219,6 @@ struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id)
        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)
 {
        if (ctx == NULL)