drm/nouveau: Replace ttm_bo_unref with ttm_bo_put
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 25 Jan 2019 11:02:07 +0000 (12:02 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 28 Jan 2019 16:43:11 +0000 (11:43 -0500)
The function ttm_bo_put releases a reference to a TTM buffer object. The
function's name is more aligned to the Linux kernel convention of naming
ref-counting function _get and _put.

A call to ttm_bo_unref takes the address of the TTM BO object's pointer and
clears the pointer's value to NULL. This is not necessary in most cases and
sometimes even worked around by the calling code. A call to ttm_bo_put only
releases the reference without clearing the pointer.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/nouveau/nouveau_bo.h
drivers/gpu/drm/nouveau/nouveau_gem.c

index 3920134cb13270364c2b35e30e9de8d7132d4899..846f4bdec0de19edbc78bbf7e070c40e5bab6aa4 100644 (file)
@@ -67,11 +67,8 @@ nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pnvbo)
        } else {
                *pnvbo = NULL;
        }
-       if (prev) {
-               struct ttm_buffer_object *bo = &prev->bo;
-
-               ttm_bo_unref(&bo);
-       }
+       if (prev)
+               ttm_bo_put(&prev->bo);
 
        return 0;
 }
index b56524d343c3e84eb109badc3a763471fe95eff8..fb028e3b5f5137fae78a488017174b097d8d133b 100644 (file)
@@ -41,7 +41,6 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
 {
        struct nouveau_bo *nvbo = nouveau_gem_object(gem);
        struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev);
-       struct ttm_buffer_object *bo = &nvbo->bo;
        struct device *dev = drm->dev->dev;
        int ret;
 
@@ -56,7 +55,7 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
 
        /* reset filp so nouveau_bo_del_ttm() can test for it */
        gem->filp = NULL;
-       ttm_bo_unref(&bo);
+       ttm_bo_put(&nvbo->bo);
 
        pm_runtime_mark_last_busy(dev);
        pm_runtime_put_autosuspend(dev);