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>
---
 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,
-- 
2.25.1

Reply via email to