mirror of https://gitee.com/openkylin/linux.git
igb: Fix sparse warning about passing __beXX into leXX_to_cpup
We were casting the addr as __beXX and then passing it into le32_to_cpu because the device expects the MAC address to be in network order even though the register set is little endian. Instead of casting it as __beXX we can just cast it as __leXX in order to maintain consistency since the region of memory is already in little endian order as far as we are concerned. Signed-off-by: Alexander Duyck <aduyck@mirantis.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
4da46cebbd
commit
415cd2a645
|
@ -7845,11 +7845,13 @@ static void igb_rar_set_qsel(struct igb_adapter *adapter, u8 *addr, u32 index,
|
|||
struct e1000_hw *hw = &adapter->hw;
|
||||
u32 rar_low, rar_high;
|
||||
|
||||
/* HW expects these in little endian so we reverse the byte order
|
||||
* from network order (big endian) to CPU endian
|
||||
/* HW expects these to be in network order when they are plugged
|
||||
* into the registers which are little endian. In order to guarantee
|
||||
* that ordering we need to do an leXX_to_cpup here in order to be
|
||||
* ready for the byteswap that occurs with writel
|
||||
*/
|
||||
rar_low = le32_to_cpup((__be32 *)(addr));
|
||||
rar_high = le16_to_cpup((__be16 *)(addr + 4));
|
||||
rar_low = le32_to_cpup((__le32 *)(addr));
|
||||
rar_high = le16_to_cpup((__le16 *)(addr + 4));
|
||||
|
||||
/* Indicate to hardware the Address is Valid. */
|
||||
rar_high |= E1000_RAH_AV;
|
||||
|
|
Loading…
Reference in New Issue