From: Jesse Zhang <[email protected]>

[ Upstream commit c09d2eff81a997c169e0cacacd6b60c5e3aa33f2 ]

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).

Signed-off-by: Jesse Zhang <[email protected]>
Reviewed-by: Christian König <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 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 cf2faeae1d0db..b04d789bfd100 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -1550,7 +1550,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,
-- 
2.43.0

Reply via email to