On Wed, 25 Jan 2023 at 15:50, Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > This reverts commit 00984ad39599bb2a1e6ec5d4e9c75a749f7f45c9. > > It seems to still breka i915. We also need to revert the third patch: b49323aa35d5 drm/ttm: prevent moving of pinned BOs It introduces the side effect of no longer calling tt_create(true) in ttm_bo_validate(), and I'm 99% sure that will break object clearing. We rely on having a ttm_tt for the initial dummy placement, with FLAG_ZERO_ALLOC set if clear is needed. Also I'm not sure who even creates the ttm_tt now, if ttm_bo_validate() doesn't, and we don't have the dummy move, like with this patch. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/gpu/drm/ttm/ttm_bo.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index 33471e363ff4..9baccb2f6e99 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -957,6 +957,7 @@ int ttm_bo_init_reserved(struct ttm_device *bdev, struct ttm_buffer_object *bo, > struct sg_table *sg, struct dma_resv *resv, > void (*destroy) (struct ttm_buffer_object *)) > { > + static const struct ttm_place sys_mem = { .mem_type = TTM_PL_SYSTEM }; > int ret; > > kref_init(&bo->kref); > @@ -973,6 +974,12 @@ int ttm_bo_init_reserved(struct ttm_device *bdev, struct ttm_buffer_object *bo, > bo->base.resv = &bo->base._resv; > atomic_inc(&ttm_glob.bo_count); > > + ret = ttm_resource_alloc(bo, &sys_mem, &bo->resource); > + if (unlikely(ret)) { > + ttm_bo_put(bo); > + return ret; > + } > + > /* > * For ttm_bo_type_device buffers, allocate > * address space from the device. > -- > 2.34.1 >