|
@@ -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];
|
|
|
|
|
|
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;
|
|
|
}
|
|
@@ -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;
|
|
|
|
|
|
lru->swap_lru = &tbo->swap;
|
|
|
+ while ((++lru)->swap_lru == res)
|
|
|
+ lru->swap_lru = &tbo->swap;
|
|
|
|
|
|
return res;
|
|
|
}
|
|
@@ -1011,6 +1015,10 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
|
|
|
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;
|
|
|
r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_VRAM,
|
|
|
adev->mc.real_vram_size >> PAGE_SHIFT);
|