From e3ed309d35398e6249638599c10e1f8b29cbae01 Mon Sep 17 00:00:00 2001 From: Jinesh Parakh Date: Wed, 13 Apr 2022 21:51:51 +0530 Subject: [PATCH] gpu: nvgpu: Fix Unintentional integer overflow bug Fix following Coverity defect: cde.c : Unintentional integer overflow The Coverity issue suggests that (u64) (nvgpu_ltc_get_ltc_count(g) * nvgpu_ltc_get_slices_per_ltc(g) * nvgpu_ltc_get_cacheline_size(g)) can cause overflow because typecasting is done after multiplication. This patch solves that issue by typecasting it before multiplication. CID 10112360 Bug 3460991 Signed-off-by: Jinesh Parakh Change-Id: I314ca7a9adc95fcb09f15eb603b56ad03ce34b99 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2697027 Tested-by: mobile promotions Reviewed-by: mobile promotions --- drivers/gpu/nvgpu/os/linux/cde.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/os/linux/cde.c b/drivers/gpu/nvgpu/os/linux/cde.c index ca6577d65..456a47d58 100644 --- a/drivers/gpu/nvgpu/os/linux/cde.c +++ b/drivers/gpu/nvgpu/os/linux/cde.c @@ -423,9 +423,9 @@ static int gk20a_cde_patch_params(struct gk20a_cde_ctx *cde_ctx) new_data = cbc->comptags_per_cacheline; break; case TYPE_PARAM_GPU_CONFIGURATION: - new_data = (u64) (nvgpu_ltc_get_ltc_count(g) * + new_data = (u64)nvgpu_ltc_get_ltc_count(g) * nvgpu_ltc_get_slices_per_ltc(g) * - nvgpu_ltc_get_cacheline_size(g)); + nvgpu_ltc_get_cacheline_size(g); break; case TYPE_PARAM_FIRSTPAGEOFFSET: new_data = cde_ctx->surf_param_offset;