@@ -841,7 +841,7 @@ static int amdgpu_ttm_gart_bind(struct amdgpu_device *adev,
841841 uint64_t page_idx = 1 ;
842842
843843 r = amdgpu_gart_bind (adev , gtt -> offset , page_idx ,
844- ttm -> pages , gtt -> ttm .dma_address , flags );
844+ gtt -> ttm .dma_address , flags );
845845 if (r )
846846 goto gart_bind_fail ;
847847
@@ -855,11 +855,10 @@ static int amdgpu_ttm_gart_bind(struct amdgpu_device *adev,
855855 r = amdgpu_gart_bind (adev ,
856856 gtt -> offset + (page_idx << PAGE_SHIFT ),
857857 ttm -> num_pages - page_idx ,
858- & ttm -> pages [page_idx ],
859858 & (gtt -> ttm .dma_address [page_idx ]), flags );
860859 } else {
861860 r = amdgpu_gart_bind (adev , gtt -> offset , ttm -> num_pages ,
862- ttm -> pages , gtt -> ttm .dma_address , flags );
861+ gtt -> ttm .dma_address , flags );
863862 }
864863
865864gart_bind_fail :
@@ -935,7 +934,7 @@ static int amdgpu_ttm_backend_bind(struct ttm_device *bdev,
935934 /* bind pages into GART page tables */
936935 gtt -> offset = (u64 )bo_mem -> start << PAGE_SHIFT ;
937936 r = amdgpu_gart_bind (adev , gtt -> offset , ttm -> num_pages ,
938- ttm -> pages , gtt -> ttm .dma_address , flags );
937+ gtt -> ttm .dma_address , flags );
939938
940939 if (r )
941940 DRM_ERROR ("failed to bind %u pages at 0x%08llX\n" ,
@@ -1129,8 +1128,6 @@ static int amdgpu_ttm_tt_populate(struct ttm_device *bdev,
11291128 ttm -> sg = kzalloc (sizeof (struct sg_table ), GFP_KERNEL );
11301129 if (!ttm -> sg )
11311130 return - ENOMEM ;
1132-
1133- ttm -> page_flags |= TTM_PAGE_FLAG_SG ;
11341131 return 0 ;
11351132 }
11361133
@@ -1156,7 +1153,6 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_device *bdev,
11561153 amdgpu_ttm_tt_set_user_pages (ttm , NULL );
11571154 kfree (ttm -> sg );
11581155 ttm -> sg = NULL ;
1159- ttm -> page_flags &= ~TTM_PAGE_FLAG_SG ;
11601156 return ;
11611157 }
11621158
@@ -1190,6 +1186,9 @@ int amdgpu_ttm_tt_set_userptr(struct ttm_buffer_object *bo,
11901186 return - ENOMEM ;
11911187 }
11921188
1189+ /* Set TTM_PAGE_FLAG_SG before populate but after create. */
1190+ bo -> ttm -> page_flags |= TTM_PAGE_FLAG_SG ;
1191+
11931192 gtt = (void * )bo -> ttm ;
11941193 gtt -> userptr = addr ;
11951194 gtt -> userflags = flags ;
0 commit comments