Commit 6c032c37 authored by Lin.Cao's avatar Lin.Cao Committed by Alex Deucher
Browse files

drm/amdgpu: Fix vram recover doesn't work after whole GPU reset (v2)



v1: Vmbo->shadow is used to back vram bo up when vram lost. So that we
should set shadow as vmbo->shadow to recover vmbo->bo
v2: Modify if(vmbo->shadow) shadow = vmbo->shadow as if(!vmbo->shadow)
continue;

Fixes: e18aaea7 ("drm/amdgpu: move shadow_list to amdgpu_bo_vm")
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarLin.Cao <lincao12@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 720b4722
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -4512,7 +4512,11 @@ static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
	dev_info(adev->dev, "recover vram bo from shadow start\n");
	mutex_lock(&adev->shadow_list_lock);
	list_for_each_entry(vmbo, &adev->shadow_list, shadow_list) {
		shadow = &vmbo->bo;
		/* If vm is compute context or adev is APU, shadow will be NULL */
		if (!vmbo->shadow)
			continue;
		shadow = vmbo->shadow;

		/* No need to recover an evicted BO */
		if (shadow->tbo.resource->mem_type != TTM_PL_TT ||
		    shadow->tbo.resource->start == AMDGPU_BO_INVALID_OFFSET ||