From: Christian König <christian.koe...@amd.com>

It's only used once after initializing and that
ptr can be calculated from the BO as well.

Signed-off-by: Christian König <christian.koenig at amd.com>
---
 drivers/gpu/drm/radeon/radeon.h    |  1 -
 drivers/gpu/drm/radeon/radeon_cs.c | 15 +++++++++------
 drivers/gpu/drm/radeon/radeon_vm.c |  2 --
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 3207bb6..4a09ffd 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -1045,7 +1045,6 @@ void cayman_dma_fini(struct radeon_device *rdev);
  * CS.
  */
 struct radeon_cs_reloc {
-       struct drm_gem_object           *gobj;
        struct radeon_bo                *robj;
        struct ttm_validate_buffer      tv;
        uint64_t                        gpu_offset;
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c 
b/drivers/gpu/drm/radeon/radeon_cs.c
index f5e0a69..7846c3e 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -101,6 +101,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser 
*p)

        for (i = 0; i < p->nrelocs; i++) {
                struct drm_radeon_cs_reloc *r;
+               struct drm_gem_object *gobj;
                unsigned priority;

                duplicate = false;
@@ -117,15 +118,14 @@ static int radeon_cs_parser_relocs(struct 
radeon_cs_parser *p)
                        continue;
                }

-               p->relocs[i].gobj = drm_gem_object_lookup(ddev, p->filp,
-                                                         r->handle);
-               if (p->relocs[i].gobj == NULL) {
+               gobj = drm_gem_object_lookup(ddev, p->filp, r->handle);
+               if (gobj == NULL) {
                        DRM_ERROR("gem object lookup failed 0x%x\n",
                                  r->handle);
                        return -ENOENT;
                }
                p->relocs_ptr[i] = &p->relocs[i];
-               p->relocs[i].robj = gem_to_radeon_bo(p->relocs[i].gobj);
+               p->relocs[i].robj = gem_to_radeon_bo(gobj);

                /* The userspace buffer priorities are from 0 to 15. A higher
                 * number means the buffer is more important.
@@ -439,8 +439,11 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser 
*parser, int error, bo

        if (parser->relocs != NULL) {
                for (i = 0; i < parser->nrelocs; i++) {
-                       if (parser->relocs[i].gobj)
-                               
drm_gem_object_unreference_unlocked(parser->relocs[i].gobj);
+                       struct radeon_bo *bo = parser->relocs[i].robj;
+                       if (bo == NULL)
+                               continue;
+
+                       drm_gem_object_unreference_unlocked(&bo->gem_base);
                }
        }
        kfree(parser->track);
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c 
b/drivers/gpu/drm/radeon/radeon_vm.c
index 0b10f3a..2b2eb1c 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -138,7 +138,6 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct 
radeon_device *rdev,
                return NULL;

        /* add the vm page table to the list */
-       list[0].gobj = NULL;
        list[0].robj = vm->page_directory;
        list[0].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
        list[0].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
@@ -152,7 +151,6 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct 
radeon_device *rdev,
                if (!vm->page_tables[i].bo)
                        continue;

-               list[idx].gobj = NULL;
                list[idx].robj = vm->page_tables[i].bo;
                list[idx].prefered_domains = RADEON_GEM_DOMAIN_VRAM;
                list[idx].allowed_domains = RADEON_GEM_DOMAIN_VRAM;
-- 
1.9.1

Reply via email to