Commit 55b3d6a6 authored by Christian König's avatar Christian König
Browse files

drm/amdgpu: reapply "fix start calculation in amdgpu_vram_mgr_new""



This re-applys commit 5e3f1e77.

The original problem this was reverted for was found and the correct fix
will be merged to drm-misc-next-fixes.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarArunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220714132315.587217-1-christian.koenig@amd.com
parent f6ee3040
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -496,16 +496,22 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
			list_splice_tail(trim_list, &vres->blocks);
	}

	list_for_each_entry(block, &vres->blocks, link)
		vis_usage += amdgpu_vram_mgr_vis_size(adev, block);
	vres->base.start = 0;
	list_for_each_entry(block, &vres->blocks, link) {
		unsigned long start;

	block = amdgpu_vram_mgr_first_block(&vres->blocks);
	if (!block) {
		r = -EINVAL;
		goto error_fini;
	}
		start = amdgpu_vram_mgr_block_start(block) +
			amdgpu_vram_mgr_block_size(block);
		start >>= PAGE_SHIFT;

	vres->base.start = amdgpu_vram_mgr_block_start(block) >> PAGE_SHIFT;
		if (start > vres->base.num_pages)
			start -= vres->base.num_pages;
		else
			start = 0;
		vres->base.start = max(vres->base.start, start);

		vis_usage += amdgpu_vram_mgr_vis_size(adev, block);
	}

	if (amdgpu_is_vram_mgr_blocks_contiguous(&vres->blocks))
		vres->base.placement |= TTM_PL_FLAG_CONTIGUOUS;