net/nfp: fix possible bad shif operation
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Wed, 8 Nov 2017 12:28:11 +0000 (12:28 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 10 Nov 2017 09:31:24 +0000 (09:31 +0000)
We do not know how big can the BAR be, but we know anything less
than 1MB is an error. This BAR needs to be big enough for accessing
most of NFP internals.

Coverity issue: 195024
Fixes: d12206e00590 ("net/nfp: add NSP user space interface")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
drivers/net/nfp/nfp_nfpu.c

index 5775d8d..f11afef 100644 (file)
@@ -75,8 +75,13 @@ nfpu_open(struct rte_pci_device *pci_dev, nfpu_desc_t *desc, int nfp)
        /* barsz in log2 */
        while (barsz >>= 1)
                i++;
+
        barsz = i;
 
+       /* Sanity check: we can assume any bar size less than 1MB an error */
+       if (barsz < 20)
+               return -1;
+
        /* Getting address for NFP expansion BAR registers */
        cfg_base = pci_dev->mem_resource[0].addr;
        cfg_base = (uint8_t *)cfg_base + NFP_CFG_EXP_BAR_CFG_BASE;