|
@@ -251,8 +251,8 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
|
|
|
|
|
|
|
|
adev = amdgpu_get_adev(bo->bdev);
|
|
adev = amdgpu_get_adev(bo->bdev);
|
|
|
ring = adev->mman.buffer_funcs_ring;
|
|
ring = adev->mman.buffer_funcs_ring;
|
|
|
- old_start = old_mem->start << PAGE_SHIFT;
|
|
|
|
|
- new_start = new_mem->start << PAGE_SHIFT;
|
|
|
|
|
|
|
+ old_start = (u64)old_mem->start << PAGE_SHIFT;
|
|
|
|
|
+ new_start = (u64)new_mem->start << PAGE_SHIFT;
|
|
|
|
|
|
|
|
switch (old_mem->mem_type) {
|
|
switch (old_mem->mem_type) {
|
|
|
case TTM_PL_VRAM:
|
|
case TTM_PL_VRAM:
|
|
@@ -950,6 +950,8 @@ static struct list_head *amdgpu_ttm_lru_tail(struct ttm_buffer_object *tbo)
|
|
|
struct list_head *res = lru->lru[tbo->mem.mem_type];
|
|
struct list_head *res = lru->lru[tbo->mem.mem_type];
|
|
|
|
|
|
|
|
lru->lru[tbo->mem.mem_type] = &tbo->lru;
|
|
lru->lru[tbo->mem.mem_type] = &tbo->lru;
|
|
|
|
|
+ while ((++lru)->lru[tbo->mem.mem_type] == res)
|
|
|
|
|
+ lru->lru[tbo->mem.mem_type] = &tbo->lru;
|
|
|
|
|
|
|
|
return res;
|
|
return res;
|
|
|
}
|
|
}
|
|
@@ -960,6 +962,8 @@ static struct list_head *amdgpu_ttm_swap_lru_tail(struct ttm_buffer_object *tbo)
|
|
|
struct list_head *res = lru->swap_lru;
|
|
struct list_head *res = lru->swap_lru;
|
|
|
|
|
|
|
|
lru->swap_lru = &tbo->swap;
|
|
lru->swap_lru = &tbo->swap;
|
|
|
|
|
+ while ((++lru)->swap_lru == res)
|
|
|
|
|
+ lru->swap_lru = &tbo->swap;
|
|
|
|
|
|
|
|
return res;
|
|
return res;
|
|
|
}
|
|
}
|
|
@@ -1011,6 +1015,10 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
|
|
|
lru->swap_lru = &adev->mman.bdev.glob->swap_lru;
|
|
lru->swap_lru = &adev->mman.bdev.glob->swap_lru;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ for (j = 0; j < TTM_NUM_MEM_TYPES; ++j)
|
|
|
|
|
+ adev->mman.guard.lru[j] = NULL;
|
|
|
|
|
+ adev->mman.guard.swap_lru = NULL;
|
|
|
|
|
+
|
|
|
adev->mman.initialized = true;
|
|
adev->mman.initialized = true;
|
|
|
r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_VRAM,
|
|
r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_VRAM,
|
|
|
adev->mc.real_vram_size >> PAGE_SHIFT);
|
|
adev->mc.real_vram_size >> PAGE_SHIFT);
|