igb: Fix set_ethtool function to call update nvm for entire image
authorCarolyn Wyborny <carolyn.wyborny@intel.com>
Thu, 25 Apr 2013 17:22:34 +0000 (17:22 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 21 May 2013 09:49:34 +0000 (02:49 -0700)
This patch fixes a problem where we were only checking to update checksum
on first part of nvm image.  Newer parts have multiple checksum fields and
checksum function will accommodate that as long as we call it in the first
place for any changes made.

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/igb_ethtool.c

index 7b25ee2e81c09042b1cc540020f62f1f72f8081b..85fe7b52f435cf9444cab5d1c466e9e604e3f40b 100644 (file)
@@ -811,10 +811,8 @@ static int igb_set_eeprom(struct net_device *netdev,
        ret_val = hw->nvm.ops.write(hw, first_word,
                                    last_word - first_word + 1, eeprom_buff);
 
-       /* Update the checksum over the first part of the EEPROM if needed
-        * and flush shadow RAM for 82573 controllers
-        */
-       if ((ret_val == 0) && ((first_word <= NVM_CHECKSUM_REG)))
+       /* Update the checksum if nvm write succeeded */
+       if (ret_val == 0)
                hw->nvm.ops.update(hw);
 
        igb_set_fw_version(adapter);