net/ice: fix EEPROM range check
authorXiao Wang <xiao.w.wang@intel.com>
Sun, 5 May 2019 05:48:21 +0000 (13:48 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 7 May 2019 10:00:31 +0000 (12:00 +0200)
The last word should not cross shadow RAM boundary.

Fixes: 68a1ab82ad74 ("net/ice: speed up to retrieve EEPROM")
Cc: stable@dpdk.org
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_ethdev.c

index 7d23f5d..bbaa7cf 100644 (file)
@@ -3009,8 +3009,8 @@ ice_get_eeprom(struct rte_eth_dev *dev,
        last_word = (eeprom->offset + eeprom->length - 1) >> 1;
        nwords = last_word - first_word + 1;
 
-       if (first_word > hw->nvm.sr_words ||
-           last_word > hw->nvm.sr_words) {
+       if (first_word >= hw->nvm.sr_words ||
+           last_word >= hw->nvm.sr_words) {
                PMD_DRV_LOG(ERR, "Requested EEPROM bytes out of range.");
                return -EINVAL;
        }