History

i40e: fix unconditional execution of cpu_to_le16()

The commit 3092e5e4cc79 ("i40e: add little endian conversion for checksum") fixed the checksum bug on big-endian architecture. But we should not execute cpu_to_le16() unconditionally. Thus, put cpu_to_le16() under certain condition.

Jean Sacren committed 11 years ago

Commit 2fc4cd51 parent 0e5229c1 file · +3 −2Browse files

Unified · Split

drivers/net/ethernet/intel/i40e/i40e_nvm.c+3−2
@@ -569,10 +569,11 @@ i40e_status i40e_update_nvm_checksum(struct i40e_hw *hw) · 568 unmodified lines
569569 __le16 le_sum;
570570
571571 ret_code = i40e_calc_nvm_checksum(hw, &checksum);
572− le_sum = cpu_to_le16(checksum);
573− if (!ret_code)
572+ if (!ret_code) {
573+ le_sum = cpu_to_le16(checksum);
574574 ret_code = i40e_write_nvm_aq(hw, 0x00, I40E_SR_SW_CHECKSUM_WORD,
575575 1, &le_sum, true);
576+ }
576577
577578 return ret_code;
578579 }