gpu: nvgpu: Fix Bad bit shift Coverity issues

Fixed following Coverity Defects:
ioctl_as.c : Bad bit shift operation
mc_tu104.c : Bad bit shift operation
vm.c : Bad bit shift operation
vm_remap.c : Bad bit shift operation

A new linux header file for ilog2 is created.
The files which used the old ilog2 function
have been changed to use the new nvgpu_ilog2
function.

CID 9847922
CID 9869507
CID 9859508
CID 10112314
CID 10127813
CID 10127899
CID 10128004

Signed-off-by: Jinesh Parakh <jparakh@nvidia.com>
Change-Id: Ia201eea7cc426c3d6581e1e5ae3b882dbab3b490
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2700994
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Jinesh Parakh
2022-04-21 19:42:23 +05:30
committed by mobile promotions
parent 167e7b0256
commit 622fe70dab
16 changed files with 153 additions and 37 deletions

View File

@@ -52,8 +52,12 @@ nvgpu_pd_mem_entry_from_tree_entry(struct nvgpu_rbtree_node *node)
static u32 nvgpu_pd_cache_nr(u32 bytes)
{
unsigned long tmp = ilog2((unsigned long)bytes >>
((unsigned long)NVGPU_PD_CACHE_MIN_SHIFT - 1UL));
unsigned long bytes_shift = (unsigned long)bytes >>
((unsigned long)NVGPU_PD_CACHE_MIN_SHIFT - 1UL);
unsigned long tmp;
nvgpu_assert(bytes_shift > 0UL);
tmp = nvgpu_ilog2(bytes_shift);
nvgpu_assert(tmp <= U32_MAX);
return (u32)tmp;