[PATCH 07/21] drm/amdgpu:fix gart table vram pin

Liu, Monk Monk.Liu at amd.com
Mon Feb 6 14:25:12 UTC 2017


Emmmm looks like I missed the part of S3 function

But if this is from a GPU reset ,  we also shouldn't continue run this function otherwise GPU reset will fail (SRIOV reset test)

BR Monk 

-----Original Message-----
From: Christian König [mailto:deathsimple at vodafone.de] 
Sent: Monday, February 06, 2017 4:14 PM
To: Liu, Monk <Monk.Liu at amd.com>; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH 07/21] drm/amdgpu:fix gart table vram pin

A bug NAK on this! amdgpu_gart_table_vram_unpin() must be called during suspend.

Otherwise the GART table can be corrupted and we run into a whole bunch of problems.

We could add a "BUG_ON(adev->gart.table_addr != NULL);" here to double check that, but just ignoring that something went horrible wrong is clearly the wrong approach.

Regards,
Christian.

Am 04.02.2017 um 11:34 schrieb Monk Liu:
> if this call is from resume, shouldn't enter pin logic at all
>
> Change-Id: I40a5cdc2a716c4c20d2812fd74ece4ea284b6765
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> index 964d2a9..5e907f7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> @@ -151,6 +151,11 @@ int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev)
>   	uint64_t gpu_addr;
>   	int r;
>   
> +	if (adev->gart.table_addr) {
> +		/* it's a resume call, gart already pin */
> +		return 0;
> +	}
> +
>   	r = amdgpu_bo_reserve(adev->gart.robj, false);
>   	if (unlikely(r != 0))
>   		return r;




More information about the amd-gfx mailing list