[PATCH] drm/amdgpu: error handling for xgmi and ras

Christian König ckoenig.leichtzumerken at gmail.com
Fri Mar 15 08:40:08 UTC 2019


Am 15.03.19 um 09:33 schrieb Evan Quan:
> This is a quick workaround. A more complete
> error handling around psp_hw_start is actually
> needed.
>
> Change-Id: I398efd652584e022debf237950207199a4ea78fc
> Signed-off-by: Evan Quan <evan.quan at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 5888e24219d9..f8d712d306f1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -941,6 +941,11 @@ static int psp_load_fw(struct amdgpu_device *adev)
>   	amdgpu_bo_free_kernel(&psp->fw_pri_bo,
>   			      &psp->fw_pri_mc_addr, &psp->fw_pri_buf);
>   failed:
> +	if (psp->ras.ras_initialized)
> +		psp->ras.ras_initialized = 0;
> +	if (psp->ras.ras_initialized)
> +		psp->ras.ras_initialized = 0;

No idea what that code does, but it looks really odd. Just copy&pasted 
typo maybe?

A simple "psp->ras.ras_initialized = 0;" in the error path should have 
the same effect.

Christian.

> +
>   	kfree(psp->cmd);
>   	psp->cmd = NULL;
>   	return ret;
> @@ -1061,6 +1066,10 @@ static int psp_resume(void *handle)
>   
>   failed:
>   	DRM_ERROR("PSP resume failed\n");
> +	if (psp->ras.ras_initialized)
> +		psp->ras.ras_initialized = 0;
> +	if (psp->ras.ras_initialized)
> +		psp->ras.ras_initialized = 0;
>   	mutex_unlock(&adev->firmware.mutex);
>   	return ret;
>   }



More information about the amd-gfx mailing list