i40e: tame the nvmupdate read and write complaints
authorShannon Nelson <shannon.nelson@intel.com>
Fri, 27 Feb 2015 09:18:33 +0000 (09:18 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 9 Mar 2015 12:20:47 +0000 (05:20 -0700)
The NVMUpdate tool doesn't necessarily know the ReadOnly map of the current
NVM image, and must try reading and writing words that may be protected.
This generates an error out of the Firmware request that the driver logs.
Unfortunately, this ends up spitting out hundreds of bogus read and write
error message that looks rather messy.

This patch checks the error type and under normal conditions will not print
the typical read and write errors during NVMUpdate.  This can be overridden
by enabling the NVM update debugging.  This results in a much less messy log
file, and likely many fewer customer support questions.

Change-ID: Id4ff2e9048c523b0ff503aa5ab181b025ec948ea
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_ethtool.c

index 01c811c99ff752fc6df4a733934176941259e414..9ff3dc15db2560270ed4abf5f565da3988483db5 100644 (file)
@@ -917,7 +917,9 @@ static int i40e_get_eeprom(struct net_device *netdev,
 
                cmd = (struct i40e_nvm_access *)eeprom;
                ret_val = i40e_nvmupd_command(hw, cmd, bytes, &errno);
-               if (ret_val)
+               if (ret_val &&
+                   ((hw->aq.asq_last_status != I40E_AQ_RC_EACCES) ||
+                    (hw->debug_mask & I40E_DEBUG_NVM)))
                        dev_info(&pf->pdev->dev,
                                 "NVMUpdate read failed err=%d status=0x%x errno=%d module=%d offset=0x%x size=%d\n",
                                 ret_val, hw->aq.asq_last_status, errno,
@@ -1021,7 +1023,10 @@ static int i40e_set_eeprom(struct net_device *netdev,
 
        cmd = (struct i40e_nvm_access *)eeprom;
        ret_val = i40e_nvmupd_command(hw, cmd, bytes, &errno);
-       if (ret_val && hw->aq.asq_last_status != I40E_AQ_RC_EBUSY)
+       if (ret_val &&
+           ((hw->aq.asq_last_status != I40E_AQ_RC_EPERM &&
+             hw->aq.asq_last_status != I40E_AQ_RC_EBUSY) ||
+            (hw->debug_mask & I40E_DEBUG_NVM)))
                dev_info(&pf->pdev->dev,
                         "NVMUpdate write failed err=%d status=0x%x errno=%d module=%d offset=0x%x size=%d\n",
                         ret_val, hw->aq.asq_last_status, errno,