ixgbe: fix SFF data dumps of SFP+ modules from an offset
authorEmil Tantilov <emil.s.tantilov@intel.com>
Tue, 13 Aug 2013 04:59:29 +0000 (04:59 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 29 Aug 2013 10:17:11 +0000 (03:17 -0700)
This patch fixes the read loop for the I2C data to account for the offset.

Also includes a whitespace cleanup and removes ret_val as it is not needed.

CC: Ben Hutchings <bhutchings@solarflare.com>
Reported-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Reviewed-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c

index b6f1592bbcc890007dbd88092b386c5194472831..2d0308ed3bdd84b1b729b1922e82c2d20345c832 100644 (file)
@@ -2946,28 +2946,27 @@ static int ixgbe_get_module_eeprom(struct net_device *dev,
        u32 status = IXGBE_ERR_PHY_ADDR_INVALID;
        u8 databyte = 0xFF;
        int i = 0;
-       int ret_val = 0;
 
        if (ee->len == 0)
                return -EINVAL;
 
-       for (i = ee->offset; i < ee->len; i++) {
+       for (i = ee->offset; i < ee->offset + ee->len; i++) {
                /* I2C reads can take long time */
                if (test_bit(__IXGBE_IN_SFP_INIT, &adapter->state))
                        return -EBUSY;
 
                if (i < ETH_MODULE_SFF_8079_LEN)
-                       status  = hw->phy.ops.read_i2c_eeprom(hw, i, &databyte);
+                       status = hw->phy.ops.read_i2c_eeprom(hw, i, &databyte);
                else
                        status = hw->phy.ops.read_i2c_sff8472(hw, i, &databyte);
 
                if (status != 0)
-                       ret_val = -EIO;
+                       return -EIO;
 
                data[i - ee->offset] = databyte;
        }
 
-       return ret_val;
+       return 0;
 }
 
 static const struct ethtool_ops ixgbe_ethtool_ops = {