Both callers do the same thing, so we can trivially unify that.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 2a4b98bfde57..87e81e36bbd4 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -368,6 +368,13 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo,
        struct ttm_place hop;
        int ret = 0;
 
+       if (ttm_bo_is_zombie(bo)) {
+               ret = ttm_bo_wait_ctx(bo, ctx);
+               if (!ret)
+                       ttm_bo_cleanup_memtype_use(bo);
+               return ret;
+       }
+
        memset(&hop, 0, sizeof(hop));
 
        dma_resv_assert_held(bo->base.resv);
@@ -475,13 +482,7 @@ int ttm_bo_evict_first(struct ttm_device *bdev, struct 
ttm_resource_manager *man
        if (!bo->resource || bo->resource->mem_type != mem_type)
                goto out_bo_moved;
 
-       if (ttm_bo_is_zombie(bo)) {
-               ret = ttm_bo_wait_ctx(bo, ctx);
-               if (!ret)
-                       ttm_bo_cleanup_memtype_use(bo);
-       } else {
-               ret = ttm_bo_evict(bo, ctx);
-       }
+       ret = ttm_bo_evict(bo, ctx);
 out_bo_moved:
        dma_resv_unlock(bo->base.resv);
 out_no_lock:
@@ -529,14 +530,7 @@ static s64 ttm_bo_evict_cb(struct ttm_lru_walk *walk, 
struct ttm_buffer_object *
        if (bo->pin_count || !bo->bdev->funcs->eviction_valuable(bo, 
evict_walk->place))
                return 0;
 
-       if (ttm_bo_is_zombie(bo)) {
-               lret = ttm_bo_wait_ctx(bo, walk->arg.ctx);
-               if (!lret)
-                       ttm_bo_cleanup_memtype_use(bo);
-       } else {
-               lret = ttm_bo_evict(bo, walk->arg.ctx);
-       }
-
+       lret = ttm_bo_evict(bo, walk->arg.ctx);
        if (lret)
                goto out;
 
-- 
2.43.0

Reply via email to