[PATCH] habanalabs: use u64 when comparing variables' sum to u32_max

From: Oded Gabbay
Date: Sun Feb 24 2019 - 04:59:25 EST


This patch fixes two smatch warnings about two if statements that are
always true because of the types of the variables used - u32 when
comparing the sum to u32_max.

The patch changes the types to be u64 so the accumalted sum can be checked
if it is larger than u32_max

Reported-by: kbuild test robot <lkp@xxxxxxxxx>
Signed-off-by: Oded Gabbay <oded.gabbay@xxxxxxxxx>
---
drivers/misc/habanalabs/goya/goya.c | 6 ++++--
drivers/misc/habanalabs/goya/goyaP.h | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/habanalabs/goya/goya.c b/drivers/misc/habanalabs/goya/goya.c
index e6f0d49ab71a..fc53cdb38f23 100644
--- a/drivers/misc/habanalabs/goya/goya.c
+++ b/drivers/misc/habanalabs/goya/goya.c
@@ -3474,7 +3474,8 @@ u32 goya_get_dma_desc_list_size(struct hl_device *hdev,
struct sg_table *sgt)
{
struct scatterlist *sg, *sg_next_iter;
- u32 count, len, dma_desc_cnt, len_next;
+ u32 count, dma_desc_cnt;
+ u64 len, len_next;
dma_addr_t addr, addr_next;

dma_desc_cnt = 0;
@@ -3915,7 +3916,8 @@ static int goya_patch_dma_packet(struct hl_device *hdev,
{
struct hl_userptr *userptr;
struct scatterlist *sg, *sg_next_iter;
- u32 count, len, dma_desc_cnt, len_next;
+ u32 count, dma_desc_cnt;
+ u64 len, len_next;
dma_addr_t dma_addr, dma_addr_next;
enum goya_dma_direction user_dir;
u64 device_memory_addr, addr;
diff --git a/drivers/misc/habanalabs/goya/goyaP.h b/drivers/misc/habanalabs/goya/goyaP.h
index 7dc324e4e268..fd1476039226 100644
--- a/drivers/misc/habanalabs/goya/goyaP.h
+++ b/drivers/misc/habanalabs/goya/goyaP.h
@@ -122,7 +122,7 @@
#define VA_DDR_SPACE_SIZE (VA_DDR_SPACE_END - \
VA_DDR_SPACE_START) /* 128GB */

-#define DMA_MAX_TRANSFER_SIZE 0xFFFFFFFF
+#define DMA_MAX_TRANSFER_SIZE U32_MAX

#define HW_CAP_PLL 0x00000001
#define HW_CAP_DDR_0 0x00000002
--
2.18.0