From: Jesse Zhang <jesse.zh...@amd.com>

[ 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 <jesse.zh...@amd.com>
Reviewed-by: Christian König <christian.koe...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 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