[PATCH 1/8] drm/amdgu: fix Unintentional integer overflow for mall size

Christian König christian.koenig at amd.com
Thu May 30 14:09:08 UTC 2024


Am 30.05.24 um 05:46 schrieb Jesse Zhang:
> Potentially overflowing expression mall_size_per_umc * adev->gmc.num_umc with type unsigned int (32 bits, unsigned)
> is evaluated using 32-bit arithmetic,and then used in a context that expects an expression of type u64 (64 bits, unsigned).

Maybe better change the type of the local variable instead?

On the other hand feel free to add Reviewed-by: Christian König 
<christian.koenig at amd.com> to this one as well.

Regards,
Christian.

>
> Signed-off-by: Jesse Zhang <Jesse.Zhang at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> index 98e8f30824c3..9e0cfe06c8b1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> @@ -1639,7 +1639,7 @@ static int amdgpu_discovery_get_mall_info(struct amdgpu_device *adev)
>   		break;
>   	case 2:
>   		mall_size_per_umc = le32_to_cpu(mall_info->v2.mall_size_per_umc);
> -		adev->gmc.mall_size = mall_size_per_umc * adev->gmc.num_umc;
> +		adev->gmc.mall_size = (uint64_t)mall_size_per_umc * adev->gmc.num_umc;
>   		break;
>   	default:
>   		dev_err(adev->dev,



More information about the amd-gfx mailing list