[PATCH 3/7] drm/ttm: grab BO reference before locking it
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Jul 16 16:04:22 UTC 2025
Previously we always grabbed the BO reference after taking the lock, but
that isn't necessary any more.
So avoid doing that and cleanup the handling here.
Signed-off-by: Christian König <christian.koenig at amd.com>
---
drivers/gpu/drm/ttm/ttm_bo_util.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index dec60a41185d..a903529c2b1f 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -979,14 +979,17 @@ __ttm_bo_lru_cursor_next(struct ttm_bo_lru_cursor *curs)
break;
bo = res->bo;
- if (ttm_lru_walk_trylock(curs, bo))
- bo_locked = true;
- else if (!arg->ticket || arg->ctx->no_wait_gpu || arg->trylock_only)
+ if (!ttm_bo_get_unless_zero(bo))
continue;
- if (!ttm_bo_get_unless_zero(bo)) {
- if (curs->needs_unlock)
- dma_resv_unlock(bo->base.resv);
+ if (ttm_lru_walk_trylock(curs, bo)) {
+ bo_locked = true;
+
+ } else if (!arg->ticket || arg->ctx->no_wait_gpu ||
+ arg->trylock_only) {
+ spin_unlock(lru_lock);
+ ttm_bo_put(bo);
+ spin_lock(lru_lock);
continue;
}
--
2.43.0
More information about the Intel-xe
mailing list