aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Rix <trix@redhat.com>2022-03-02 04:57:02 -0800
committerTony Nguyen <anthony.l.nguyen@intel.com>2022-03-17 07:40:46 -0700
commitad739d0889a81a4273ab60a6c83cac3e6fad6aad (patch)
treec175cc4629f59ffb34d6f3ac1412411a1da61cd4
parentselftests: net: fix array_size.cocci warning (diff)
downloadlinux-dev-ad739d0889a81a4273ab60a6c83cac3e6fad6aad.tar.xz
linux-dev-ad739d0889a81a4273ab60a6c83cac3e6fad6aad.zip
i40e: little endian only valid checksums
The calculation of the checksum can fail. So move converting the checksum to little endian to inside the return status check. Signed-off-by: Tom Rix <trix@redhat.com> Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel) Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_nvm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_nvm.c b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
index fe6dca846028..3a38bf8bcde7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_nvm.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
@@ -682,10 +682,11 @@ i40e_status i40e_update_nvm_checksum(struct i40e_hw *hw)
__le16 le_sum;
ret_code = i40e_calc_nvm_checksum(hw, &checksum);
- le_sum = cpu_to_le16(checksum);
- if (!ret_code)
+ if (!ret_code) {
+ le_sum = cpu_to_le16(checksum);
ret_code = i40e_write_nvm_aq(hw, 0x00, I40E_SR_SW_CHECKSUM_WORD,
1, &le_sum, true);
+ }
return ret_code;
}