diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/ich8lan.c')
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/ich8lan.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index af08188d7e62..42f0f6717511 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c | |||
@@ -1371,7 +1371,10 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index) | |||
1371 | return; | 1371 | return; |
1372 | } | 1372 | } |
1373 | 1373 | ||
1374 | if (index < hw->mac.rar_entry_count) { | 1374 | /* RAR[1-6] are owned by manageability. Skip those and program the |
1375 | * next address into the SHRA register array. | ||
1376 | */ | ||
1377 | if (index < (u32)(hw->mac.rar_entry_count - 6)) { | ||
1375 | s32 ret_val; | 1378 | s32 ret_val; |
1376 | 1379 | ||
1377 | ret_val = e1000_acquire_swflag_ich8lan(hw); | 1380 | ret_val = e1000_acquire_swflag_ich8lan(hw); |
@@ -1962,8 +1965,8 @@ void e1000_copy_rx_addrs_to_phy_ich8lan(struct e1000_hw *hw) | |||
1962 | if (ret_val) | 1965 | if (ret_val) |
1963 | goto release; | 1966 | goto release; |
1964 | 1967 | ||
1965 | /* Copy both RAL/H (rar_entry_count) and SHRAL/H (+4) to PHY */ | 1968 | /* Copy both RAL/H (rar_entry_count) and SHRAL/H to PHY */ |
1966 | for (i = 0; i < (hw->mac.rar_entry_count + 4); i++) { | 1969 | for (i = 0; i < (hw->mac.rar_entry_count); i++) { |
1967 | mac_reg = er32(RAL(i)); | 1970 | mac_reg = er32(RAL(i)); |
1968 | hw->phy.ops.write_reg_page(hw, BM_RAR_L(i), | 1971 | hw->phy.ops.write_reg_page(hw, BM_RAR_L(i), |
1969 | (u16)(mac_reg & 0xFFFF)); | 1972 | (u16)(mac_reg & 0xFFFF)); |
@@ -2007,10 +2010,10 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) | |||
2007 | return ret_val; | 2010 | return ret_val; |
2008 | 2011 | ||
2009 | if (enable) { | 2012 | if (enable) { |
2010 | /* Write Rx addresses (rar_entry_count for RAL/H, +4 for | 2013 | /* Write Rx addresses (rar_entry_count for RAL/H, and |
2011 | * SHRAL/H) and initial CRC values to the MAC | 2014 | * SHRAL/H) and initial CRC values to the MAC |
2012 | */ | 2015 | */ |
2013 | for (i = 0; i < (hw->mac.rar_entry_count + 4); i++) { | 2016 | for (i = 0; i < hw->mac.rar_entry_count; i++) { |
2014 | u8 mac_addr[ETH_ALEN] = { 0 }; | 2017 | u8 mac_addr[ETH_ALEN] = { 0 }; |
2015 | u32 addr_high, addr_low; | 2018 | u32 addr_high, addr_low; |
2016 | 2019 | ||