[PATCH] drm/amdgpu: shadow in shadow_list without tbo.mem.start cause page fault in sriov TDR

Christian König ckoenig.leichtzumerken at gmail.com
Fri Apr 12 07:27:35 UTC 2019


Am 12.04.19 um 09:13 schrieb wentalou:
> shadow was added into shadow_list by amdgpu_bo_create_shadow.
> meanwhile, shadow->tbo.mem was not fully configured.
> tbo.mem would be fully configured by amdgpu_vm_sdma_map_table until calling amdgpu_vm_clear_bo.
> If sriov TDR occurred between amdgpu_bo_create_shadow and amdgpu_vm_sdma_map_table,
> amdgpu_device_recover_vram would deal with shadow without tbo.mem.start.
>
> Change-Id: I1a6a69587d6c689d0a357dd495ee44833d0f0790
> Signed-off-by: Wentao Lou <Wentao.Lou at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 3785195..be88d06 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3184,6 +3184,7 @@ static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
>   
>   		/* No need to recover an evicted BO */
>   		if (shadow->tbo.mem.mem_type != TTM_PL_TT ||
> +		    shadow->tbo.mem.start == AMDGPU_BO_INVALID_OFFSET ||
>   		    shadow->parent->tbo.mem.mem_type != TTM_PL_VRAM)
>   			continue;
>   



More information about the amd-gfx mailing list