ixgbe: fix access to last byte of EEPROM
authorRemy Horton <remy.horton@intel.com>
Thu, 17 Sep 2015 13:47:16 +0000 (14:47 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 28 Oct 2015 16:14:41 +0000 (17:14 +0100)
Incorrect operator in ixgbe_get_eeprom & ixgbe_set_eeprom prevents
last byte of EEPROM being read/written, and hence cannot be dumped
or updated in entirity using these functions.

Fixes: 0198848a47f5 ("ixgbe: add access to specific device info")

Signed-off-by: Remy Horton <remy.horton@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
drivers/net/ixgbe/ixgbe_ethdev.c

index 0ce7479..d8d4173 100644 (file)
@@ -5451,8 +5451,8 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
 
        first = in_eeprom->offset >> 1;
        length = in_eeprom->length >> 1;
-       if ((first >= hw->eeprom.word_size) ||
-           ((first + length) >= hw->eeprom.word_size))
+       if ((first > hw->eeprom.word_size) ||
+           ((first + length) > hw->eeprom.word_size))
                return -EINVAL;
 
        in_eeprom->magic = hw->vendor_id | (hw->device_id << 16);
@@ -5471,8 +5471,8 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
 
        first = in_eeprom->offset >> 1;
        length = in_eeprom->length >> 1;
-       if ((first >= hw->eeprom.word_size) ||
-           ((first + length) >= hw->eeprom.word_size))
+       if ((first > hw->eeprom.word_size) ||
+           ((first + length) > hw->eeprom.word_size))
                return -EINVAL;
 
        in_eeprom->magic = hw->vendor_id | (hw->device_id << 16);