[PATCH] drm/ttm: fix LRU handling in ttm_buffer_object_transfer

Deucher, Alexander Alexander.Deucher at amd.com
Thu Nov 29 16:21:22 UTC 2018

Acked-by: Alex Deucher <alexander.deucher at amd.com>

From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Christian König <ckoenig.leichtzumerken at gmail.com>
Sent: Thursday, November 29, 2018 11:20:12 AM
To: amd-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org
Cc: maraeo at gmail.com
Subject: [PATCH] drm/ttm: fix LRU handling in ttm_buffer_object_transfer

We need to set the NO_EVICT flag on the ghost object or otherwise we are
adding it to the LRU.

When it is added to the LRU we can run into a race between destroying
and evicting it again.

Signed-off-by: Christian König <christian.koenig at amd.com>
 drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index ba80150d1052..895d77d799e4 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -492,8 +492,10 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
         if (!fbo)
                 return -ENOMEM;

-       ttm_bo_get(bo);
         fbo->base = *bo;
+       fbo->base.mem.placement |= TTM_PL_FLAG_NO_EVICT;
+       ttm_bo_get(bo);
         fbo->bo = bo;


amd-gfx mailing list
amd-gfx at lists.freedesktop.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20181129/ff772632/attachment-0001.html>

More information about the amd-gfx mailing list