From: Christian König Date: Tue, 1 Dec 2020 13:27:34 +0000 (+0100) Subject: drm/ttm: stop destroying pinned ghost object X-Git-Tag: io_uring-worker.v3-2021-02-25~31^2~24^2~193 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b73cd1e2ebfc8c22741eb4439bc5d347555f3e84;p=linux-block.git drm/ttm: stop destroying pinned ghost object Daniel added a warning for this, but we were abusing that behavior here. Signed-off-by: Christian König Fixes: 57fcd550eb15 ("drm/ttm: Warn on pinning without holding a reference") Acked-by: Daniel Vetter Link: https://patchwork.freedesktop.org/series/84456/ --- diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 7ccb2295cac1..5bbc1339d28e 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -310,7 +310,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo, kref_init(&fbo->base.kref); fbo->base.destroy = &ttm_transfered_destroy; fbo->base.acc_size = 0; - fbo->base.pin_count = 1; + fbo->base.pin_count = 0; if (bo->type != ttm_bo_type_sg) fbo->base.base.resv = &fbo->base.base._resv; @@ -319,6 +319,8 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo, ret = dma_resv_trylock(&fbo->base.base._resv); WARN_ON(!ret); + ttm_bo_move_to_lru_tail_unlocked(&fbo->base); + *new_obj = &fbo->base; return 0; }