net/bnxt: fix shift operation
authorSomnath Kotur <somnath.kotur@broadcom.com>
Tue, 22 Sep 2020 07:06:27 +0000 (12:36 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:10 +0000 (19:19 +0200)
In page_roundup() left shifting by more than 31 bits could have
undefined behavior as the return value is int and in page_getenum()
it is possible to return a value as high as 63.
Fix that to cap the return value to less than 32.

Coverity issue: 343463
Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF")
Cc: stable@dpdk.org
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_hwrm.c

index d0b820f..577c5d1 100644 (file)
@@ -52,7 +52,7 @@ static int page_getenum(size_t size)
        if (size <= 1 << 30)
                return 30;
        PMD_DRV_LOG(ERR, "Page size %zu out of range\n", size);
-       return sizeof(void *) * 8 - 1;
+       return sizeof(int) * 8 - 1;
 }
 
 static int page_roundup(size_t size)