habanalabs: use u64 when comparing variables' sum to u32_max
authorOded Gabbay <oded.gabbay@gmail.com>
Sun, 24 Feb 2019 09:55:26 +0000 (11:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Feb 2019 11:44:25 +0000 (12:44 +0100)
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@intel.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/habanalabs/goya/goya.c
drivers/misc/habanalabs/goya/goyaP.h

index e6f0d49ab71a6e8c1c44d7f75bd02b554f0eb724..fc53cdb38f23e80b64fe91b7a857211d9fcbfd36 100644 (file)
@@ -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;
index 7dc324e4e268feb15d1fe05829b0875b9bec5adf..fd1476039226f07e58f437dcbe40ad0c683b454e 100644 (file)
 #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