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
569 __le16 le_sum;569 __le16 le_sum;
570 570
571 ret_code = i40e_calc_nvm_checksum(hw, &checksum);571 ret_code = i40e_calc_nvm_checksum(hw, &checksum);
572 le_sum = cpu_to_le16(checksum);572 if (!ret_code) {
573 if (!ret_code)573 le_sum = cpu_to_le16(checksum);
574 ret_code = i40e_write_nvm_aq(hw, 0x00, I40E_SR_SW_CHECKSUM_WORD,574 ret_code = i40e_write_nvm_aq(hw, 0x00, I40E_SR_SW_CHECKSUM_WORD,
575 1, &le_sum, true);575 1, &le_sum, true);
576 }
576 577
577 return ret_code;578 return ret_code;
578}579}