RDMA/mthca: Make explicit conversion to 64bit value
authorLeon Romanovsky <leonro@mellanox.com>
Thu, 17 Aug 2017 12:50:42 +0000 (15:50 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 24 Aug 2017 20:27:10 +0000 (16:27 -0400)
The "lg" variable is declared as int so in all places where
this variable is used as a shift operand, the output will be
int too.

This produces the following smatch warning:
drivers/infiniband/hw/mthca/mthca_cmd.c:701 mthca_map_cmd() warn:
should '1 << lg' be a 64 bit type?

Simple declaration of "1" to be "1ULL" will fix the issue.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mthca/mthca_cmd.c

index a1900d2a371ba7d24b5b8a4dc4c4158a0e074ed7..419a2a20c0470b72ac95819730dab7e8d92129cd 100644 (file)
@@ -698,7 +698,7 @@ static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm,
                for (i = 0; i < mthca_icm_size(&iter) >> lg; ++i) {
                        if (virt != -1) {
                                pages[nent * 2] = cpu_to_be64(virt);
-                               virt += 1 << lg;
+                               virt += 1ULL << lg;
                        }
 
                        pages[nent * 2 + 1] =