OSDN Git Service

drm/ttm: fix busy reference in ttm_mem_evict_first
authorChristian König <christian.koenig@amd.com>
Mon, 23 Sep 2019 08:47:22 +0000 (10:47 +0200)
committerChristian König <christian.koenig@amd.com>
Mon, 14 Oct 2019 10:48:59 +0000 (12:48 +0200)
The busy BO might actually be already deleted,
so grab only a list reference.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Thomas Hellström <thellstrom@vmware.com>
Link: https://patchwork.freedesktop.org/patch/332877/
drivers/gpu/drm/ttm/ttm_bo.c

index 20ff56f..ea59459 100644 (file)
@@ -878,11 +878,11 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev,
 
        if (!bo) {
                if (busy_bo)
-                       ttm_bo_get(busy_bo);
+                       kref_get(&busy_bo->list_kref);
                spin_unlock(&glob->lru_lock);
                ret = ttm_mem_evict_wait_busy(busy_bo, ctx, ticket);
                if (busy_bo)
-                       ttm_bo_put(busy_bo);
+                       kref_put(&busy_bo->list_kref, ttm_bo_release_list);
                return ret;
        }