[PATCH v2] drm/amdgpu: Fix with right return code '-EIO' in 'amdgpu_gmc_vram_checking()'

Christian König christian.koenig at amd.com
Fri Jan 5 09:39:49 UTC 2024


Am 05.01.24 um 04:23 schrieb Srinivasan Shanmugam:
> The amdgpu_gmc_vram_checking() function in emulation checks whether
> all of the memory range of shared system memory could be accessed by
> GPU, from this aspect, -EIO is returned for error scenarios.
>
> Fixes the below:
> drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c:919 gmc_v6_0_hw_init() warn: missing error code? 'r'
> drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c:1103 gmc_v7_0_hw_init() warn: missing error code? 'r'
> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c:1223 gmc_v8_0_hw_init() warn: missing error code? 'r'
> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c:2344 gmc_v9_0_hw_init() warn: missing error code? 'r'
>
> Cc: Xiaojian Du <Xiaojian.Du at amd.com>
> Cc: Lijo Lazar <lijo.lazar at amd.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
> Suggested-by: Christian König <christian.koenig at amd.com>

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

> ---
>
> v2:
>   - release temporary buffers, if memcmp() fails (Christian)
>
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 21 ++++++++++++++-------
>   1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index d2f273d77e59..55784a9f26c4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -1045,21 +1045,28 @@ int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
>   	 * seconds, so here, we just pick up three parts for emulation.
>   	 */
>   	ret = memcmp(vram_ptr, cptr, 10);
> -	if (ret)
> -		return ret;
> +	if (ret) {
> +		ret = -EIO;
> +		goto release_buffer;
> +	}
>   
>   	ret = memcmp(vram_ptr + (size / 2), cptr, 10);
> -	if (ret)
> -		return ret;
> +	if (ret) {
> +		ret = -EIO;
> +		goto release_buffer;
> +	}
>   
>   	ret = memcmp(vram_ptr + size - 10, cptr, 10);
> -	if (ret)
> -		return ret;
> +	if (ret) {
> +		ret = -EIO;
> +		goto release_buffer;
> +	}
>   
> +release_buffer:
>   	amdgpu_bo_free_kernel(&vram_bo, &vram_gpu,
>   			&vram_ptr);
>   
> -	return 0;
> +	return ret;
>   }
>   
>   static ssize_t current_memory_partition_show(



More information about the amd-gfx mailing list