* [net-next 00/15][pull request] Intel Wired LAN Driver updates @ 2012-02-13 21:47 Jeff Kirsher 2012-02-13 21:47 ` [net-next 01/15] e1000e: cleanup: use goto for common work needed by multiple exit points Jeff Kirsher ` (15 more replies) 0 siblings, 16 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann The following series contains updates to e1000e only. All of the patches are cleanup of the e1000e driver. The following are changes since commit fafdbf84d7eb2cd7aee435cc381a0796e1a5ccb0: trivial: typo hnalder -> handler and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Bruce Allan (15): e1000e: cleanup: use goto for common work needed by multiple exit points e1000e: cleanup: rename goto labels to be more meaningful e1000e: potentially incorrect return for e1000_cfg_kmrn_10_100_80003es2lan e1000e: potential incorrect return for e1000_setup_copper_link_80003es2lan e1000e: cleanup: remove unnecessary assignments just before returning e1000e: cleanup: always return 0 e1000e: potentially incorrect return for e1000_set_d3_lplu_state_ich8lan e1000e: cleanup: remove unreachable statement e1000e: cleanup: remove unnecessary variable ret_val e1000e: cleanup: remove unnecessary test and return e1000e: cleanup: remove unnecessary variable initializations e1000e: cleanup: minor whitespace addition (insert blank line separator) e1000e: potentially incorrect return for e1000_init_hw_ich8lan e1000e: potentially incorrect return for e1000e_setup_fiber_serdes_link e1000e: cleanup goto statements to exit points without common work drivers/net/ethernet/intel/e1000e/80003es2lan.c | 36 +--- drivers/net/ethernet/intel/e1000e/82571.c | 36 ++--- drivers/net/ethernet/intel/e1000e/ich8lan.c | 220 +++++++++------------ drivers/net/ethernet/intel/e1000e/mac.c | 25 +-- drivers/net/ethernet/intel/e1000e/manage.c | 32 +-- drivers/net/ethernet/intel/e1000e/netdev.c | 16 +- drivers/net/ethernet/intel/e1000e/nvm.c | 32 ++-- drivers/net/ethernet/intel/e1000e/phy.c | 241 ++++++++++------------- 8 files changed, 265 insertions(+), 373 deletions(-) -- 1.7.7.6 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 01/15] e1000e: cleanup: use goto for common work needed by multiple exit points 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 02/15] e1000e: cleanup: rename goto labels to be more meaningful Jeff Kirsher ` (14 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> There are two exit points of e1000e_write_nvm_spi() which require the nvm->ops.release() function pointer called just before exiting. Consolidate the two duplicate pieces of common work with a goto. With this change, the value ret_val will need to be returned instead of 0. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/nvm.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c index f6fb7a7..1b50db5 100644 --- a/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/drivers/net/ethernet/intel/e1000e/nvm.c @@ -382,10 +382,8 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) u8 write_opcode = NVM_WRITE_OPCODE_SPI; ret_val = e1000_ready_nvm_eeprom(hw); - if (ret_val) { - nvm->ops.release(hw); - return ret_val; - } + if (ret_val) + goto release; e1000_standby_nvm(hw); @@ -422,8 +420,10 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) } usleep_range(10000, 20000); +release: nvm->ops.release(hw); - return 0; + + return ret_val; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 02/15] e1000e: cleanup: rename goto labels to be more meaningful 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher 2012-02-13 21:47 ` [net-next 01/15] e1000e: cleanup: use goto for common work needed by multiple exit points Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 03/15] e1000e: potentially incorrect return for e1000_cfg_kmrn_10_100_80003es2lan Jeff Kirsher ` (13 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the following functions, rename the generic 'out' goto label to the more descriptive 'release' to indicate the type of common work that is done before exiting the functions. No functional change, cosmetic only. e1000_sw_lcd_config_ich8lan() e1000_oem_bits_config_ich8lan() e1000_init_phy_wakeup() e1000e_write_phy_reg_bm() e1000e_read_phy_reg_bm() e1000e_read_phy_reg_bm2() Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 26 +++++++++++++------------- drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++-- drivers/net/ethernet/intel/e1000e/phy.c | 24 ++++++++++++------------ 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index 112d55f..6ab7254 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -1065,7 +1065,7 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) data = er32(FEXTNVM); if (!(data & sw_cfg_mask)) - goto out; + goto release; /* * Make sure HW does not configure LCD from PHY @@ -1074,14 +1074,14 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) data = er32(EXTCNF_CTRL); if (!(hw->mac.type == e1000_pch2lan)) { if (data & E1000_EXTCNF_CTRL_LCD_WRITE_ENABLE) - goto out; + goto release; } cnf_size = er32(EXTCNF_SIZE); cnf_size &= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_MASK; cnf_size >>= E1000_EXTCNF_SIZE_EXT_PCIE_LENGTH_SHIFT; if (!cnf_size) - goto out; + goto release; cnf_base_addr = data & E1000_EXTCNF_CTRL_EXT_CNF_POINTER_MASK; cnf_base_addr >>= E1000_EXTCNF_CTRL_EXT_CNF_POINTER_SHIFT; @@ -1097,13 +1097,13 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) */ ret_val = e1000_write_smbus_addr(hw); if (ret_val) - goto out; + goto release; data = er32(LEDCTL); ret_val = e1000_write_phy_reg_hv_locked(hw, HV_LED_CONFIG, (u16)data); if (ret_val) - goto out; + goto release; } /* Configure LCD from extended configuration region. */ @@ -1115,12 +1115,12 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) ret_val = e1000_read_nvm(hw, (word_addr + i * 2), 1, ®_data); if (ret_val) - goto out; + goto release; ret_val = e1000_read_nvm(hw, (word_addr + i * 2 + 1), 1, ®_addr); if (ret_val) - goto out; + goto release; /* Save off the PHY page for future writes. */ if (reg_addr == IGP01E1000_PHY_PAGE_SELECT) { @@ -1134,10 +1134,10 @@ static s32 e1000_sw_lcd_config_ich8lan(struct e1000_hw *hw) ret_val = phy->ops.write_reg_locked(hw, (u32)reg_addr, reg_data); if (ret_val) - goto out; + goto release; } -out: +release: hw->phy.ops.release(hw); return ret_val; } @@ -1302,18 +1302,18 @@ static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state) if (!(hw->mac.type == e1000_pch2lan)) { mac_reg = er32(EXTCNF_CTRL); if (mac_reg & E1000_EXTCNF_CTRL_OEM_WRITE_ENABLE) - goto out; + goto release; } mac_reg = er32(FEXTNVM); if (!(mac_reg & E1000_FEXTNVM_SW_CONFIG_ICH8M)) - goto out; + goto release; mac_reg = er32(PHY_CTRL); ret_val = hw->phy.ops.read_reg_locked(hw, HV_OEM_BITS, &oem_reg); if (ret_val) - goto out; + goto release; oem_reg &= ~(HV_OEM_BITS_GBE_DIS | HV_OEM_BITS_LPLU); @@ -1339,7 +1339,7 @@ static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state) ret_val = hw->phy.ops.write_reg_locked(hw, HV_OEM_BITS, oem_reg); -out: +release: hw->phy.ops.release(hw); return ret_val; diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index f868fb8..c11b40b 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -5365,7 +5365,7 @@ static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) /* Enable access to wakeup registers on and set page to BM_WUC_PAGE */ retval = e1000_enable_phy_wakeup_reg_access_bm(hw, &wuc_enable); if (retval) - goto out; + goto release; /* copy MAC MTA to PHY MTA - only needed for pchlan */ for (i = 0; i < adapter->hw.mac.mta_reg_count; i++) { @@ -5409,7 +5409,7 @@ static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) retval = e1000_disable_phy_wakeup_reg_access_bm(hw, &wuc_enable); if (retval) e_err("Could not set PHY Host Wakeup bit\n"); -out: +release: hw->phy.ops.release(hw); return retval; diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index 6f44c3f..70e8eb6 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -2438,7 +2438,7 @@ s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data) if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, &data, false, false); - goto out; + goto release; } hw->phy.addr = e1000_get_phy_addr_for_bm_page(page, offset); @@ -2463,13 +2463,13 @@ s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data) ret_val = e1000e_write_phy_reg_mdic(hw, page_select, (page << page_shift)); if (ret_val) - goto out; + goto release; } ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, data); -out: +release: hw->phy.ops.release(hw); return ret_val; } @@ -2497,7 +2497,7 @@ s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data) if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, data, true, false); - goto out; + goto release; } hw->phy.addr = e1000_get_phy_addr_for_bm_page(page, offset); @@ -2522,12 +2522,12 @@ s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data) ret_val = e1000e_write_phy_reg_mdic(hw, page_select, (page << page_shift)); if (ret_val) - goto out; + goto release; } ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, data); -out: +release: hw->phy.ops.release(hw); return ret_val; } @@ -2555,7 +2555,7 @@ s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data) if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, data, true, false); - goto out; + goto release; } hw->phy.addr = 1; @@ -2567,12 +2567,12 @@ s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data) page); if (ret_val) - goto out; + goto release; } ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, data); -out: +release: hw->phy.ops.release(hw); return ret_val; } @@ -2599,7 +2599,7 @@ s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data) if (page == BM_WUC_PAGE) { ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, &data, false, false); - goto out; + goto release; } hw->phy.addr = 1; @@ -2610,13 +2610,13 @@ s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data) page); if (ret_val) - goto out; + goto release; } ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, data); -out: +release: hw->phy.ops.release(hw); return ret_val; } -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 03/15] e1000e: potentially incorrect return for e1000_cfg_kmrn_10_100_80003es2lan 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher 2012-02-13 21:47 ` [net-next 01/15] e1000e: cleanup: use goto for common work needed by multiple exit points Jeff Kirsher 2012-02-13 21:47 ` [net-next 02/15] e1000e: cleanup: rename goto labels to be more meaningful Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 04/15] e1000e: potential incorrect return for e1000_setup_copper_link_80003es2lan Jeff Kirsher ` (12 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the unlikely event that e1e_wphy() returns an error, the returned error code value is not propogated to the caller of e1000_cfg_kmrn_10_100_80003es2lan(). Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c index cfb361e..37e7864 100644 --- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c +++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c @@ -1225,9 +1225,7 @@ static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex) else reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER; - ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); - - return 0; + return e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 04/15] e1000e: potential incorrect return for e1000_setup_copper_link_80003es2lan 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (2 preceding siblings ...) 2012-02-13 21:47 ` [net-next 03/15] e1000e: potentially incorrect return for e1000_cfg_kmrn_10_100_80003es2lan Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 05/15] e1000e: cleanup: remove unnecessary assignments just before returning Jeff Kirsher ` (11 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the unlikely event that e1000e_setup_copper_link() returns an error, the returned error code value is not propogated to the caller of e1000_setup_copper_link_80003es2lan(). Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c index 37e7864..99eb090 100644 --- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c +++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c @@ -1147,9 +1147,7 @@ static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw) if (ret_val) return ret_val; - ret_val = e1000e_setup_copper_link(hw); - - return 0; + return e1000e_setup_copper_link(hw); } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 05/15] e1000e: cleanup: remove unnecessary assignments just before returning 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (3 preceding siblings ...) 2012-02-13 21:47 ` [net-next 04/15] e1000e: potential incorrect return for e1000_setup_copper_link_80003es2lan Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 06/15] e1000e: cleanup: always return 0 Jeff Kirsher ` (10 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Just return the appropriate value. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 10 +++------- drivers/net/ethernet/intel/e1000e/82571.c | 4 +--- drivers/net/ethernet/intel/e1000e/mac.c | 6 ++---- drivers/net/ethernet/intel/e1000e/phy.c | 3 +-- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c index 99eb090..05a79cb 100644 --- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c +++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c @@ -470,9 +470,8 @@ static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw, ret_val = e1000e_read_phy_reg_mdic(hw, page_select, &temp); if (((u16)offset >> GG82563_PAGE_SHIFT) != temp) { - ret_val = -E1000_ERR_PHY; e1000_release_phy_80003es2lan(hw); - return ret_val; + return -E1000_ERR_PHY; } udelay(200); @@ -804,9 +803,7 @@ static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw) ew32(IMC, 0xffffffff); er32(ICR); - ret_val = e1000_check_alt_mac_addr_generic(hw); - - return ret_val; + return e1000_check_alt_mac_addr_generic(hw); } /** @@ -1265,9 +1262,8 @@ static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw) } while ((reg_data != reg_data2) && (i < GG82563_MAX_KMRN_RETRY)); reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER; - ret_val = e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); - return ret_val; + return e1e_wphy(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data); } /** diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c index 795c3d6..024ac24 100644 --- a/drivers/net/ethernet/intel/e1000e/82571.c +++ b/drivers/net/ethernet/intel/e1000e/82571.c @@ -1497,9 +1497,7 @@ static s32 e1000_setup_copper_link_82571(struct e1000_hw *hw) if (ret_val) return ret_val; - ret_val = e1000e_setup_copper_link(hw); - - return ret_val; + return e1000e_setup_copper_link(hw); } /** diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c index 83f9368..ce8a55a 100644 --- a/drivers/net/ethernet/intel/e1000e/mac.c +++ b/drivers/net/ethernet/intel/e1000e/mac.c @@ -458,10 +458,8 @@ s32 e1000e_check_for_copper_link(struct e1000_hw *hw) * If we are forcing speed/duplex, then we simply return since * we have already determined whether we have link or not. */ - if (!mac->autoneg) { - ret_val = -E1000_ERR_CONFIG; - return ret_val; - } + if (!mac->autoneg) + return -E1000_ERR_CONFIG; /* * Auto-Neg is enabled. Auto Speed Detection takes care diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index 70e8eb6..323cb14 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -1064,8 +1064,7 @@ static s32 e1000_phy_setup_autoneg(struct e1000_hw *hw) break; default: e_dbg("Flow control param set incorrectly\n"); - ret_val = -E1000_ERR_CONFIG; - return ret_val; + return -E1000_ERR_CONFIG; } ret_val = e1e_wphy(hw, PHY_AUTONEG_ADV, mii_autoneg_adv_reg); -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 06/15] e1000e: cleanup: always return 0 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (4 preceding siblings ...) 2012-02-13 21:47 ` [net-next 05/15] e1000e: cleanup: remove unnecessary assignments just before returning Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 07/15] e1000e: potentially incorrect return for e1000_set_d3_lplu_state_ich8lan Jeff Kirsher ` (9 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> These are a few instances of returning a value that can only be 0 so just use a 'return 0' to make it more obvious. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/82571.c | 2 +- drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- drivers/net/ethernet/intel/e1000e/mac.c | 2 +- drivers/net/ethernet/intel/e1000e/phy.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c index 024ac24..05e9a29 100644 --- a/drivers/net/ethernet/intel/e1000e/82571.c +++ b/drivers/net/ethernet/intel/e1000e/82571.c @@ -796,7 +796,7 @@ static s32 e1000_update_nvm_checksum_82571(struct e1000_hw *hw) * otherwise, commit the checksum to the flash NVM. */ if (hw->nvm.type != e1000_nvm_flash_hw) - return ret_val; + return 0; /* Check for pending operations. */ for (i = 0; i < E1000_FLASH_UPDATES; i++) { diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index 6ab7254..ce348cd 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -1948,7 +1948,7 @@ static s32 e1000_set_d0_lplu_state_ich8lan(struct e1000_hw *hw, bool active) u16 data; if (phy->type == e1000_phy_ife) - return ret_val; + return 0; phy_ctrl = er32(PHY_CTRL); diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c index ce8a55a..b3b2f9e 100644 --- a/drivers/net/ethernet/intel/e1000e/mac.c +++ b/drivers/net/ethernet/intel/e1000e/mac.c @@ -444,7 +444,7 @@ s32 e1000e_check_for_copper_link(struct e1000_hw *hw) return ret_val; if (!link) - return ret_val; /* No link detected */ + return 0; /* No link detected */ mac->get_link_status = false; diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index 323cb14..a8b99ba 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -1916,7 +1916,7 @@ s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw) phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; - return ret_val; + return 0; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 07/15] e1000e: potentially incorrect return for e1000_set_d3_lplu_state_ich8lan 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (5 preceding siblings ...) 2012-02-13 21:47 ` [net-next 06/15] e1000e: cleanup: always return 0 Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 08/15] e1000e: cleanup: remove unreachable statement Jeff Kirsher ` (8 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the unlikely event that e1e_wphy() returns an error, the returned error code is not propogated to the caller of e1000_set_d3_lplu_state_ich8lan(). With this change, there is a rare possibility that ret_val might not get set so it must be initialized. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index ce348cd..5a55a61 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -2030,7 +2030,7 @@ static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, bool active) { struct e1000_phy_info *phy = &hw->phy; u32 phy_ctrl; - s32 ret_val; + s32 ret_val = 0; u16 data; phy_ctrl = er32(PHY_CTRL); @@ -2096,7 +2096,7 @@ static s32 e1000_set_d3_lplu_state_ich8lan(struct e1000_hw *hw, bool active) ret_val = e1e_wphy(hw, IGP01E1000_PHY_PORT_CONFIG, data); } - return 0; + return ret_val; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 08/15] e1000e: cleanup: remove unreachable statement 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (6 preceding siblings ...) 2012-02-13 21:47 ` [net-next 07/15] e1000e: potentially incorrect return for e1000_set_d3_lplu_state_ich8lan Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 09/15] e1000e: cleanup: remove unnecessary variable ret_val Jeff Kirsher ` (7 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index 5a55a61..f5d7282 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -2161,8 +2161,6 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) e_dbg("ERROR: No valid NVM bank present\n"); return -E1000_ERR_NVM; } - - return 0; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 09/15] e1000e: cleanup: remove unnecessary variable ret_val 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (7 preceding siblings ...) 2012-02-13 21:47 ` [net-next 08/15] e1000e: cleanup: remove unreachable statement Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 10/15] e1000e: cleanup: remove unnecessary test and return Jeff Kirsher ` (6 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> ret_val gets initialized to -E1000_ERR_NVM and never set differently, so get rid of it and just return -E1000_ERR_NVM. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index f5d7282..c80ef41 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -2308,7 +2308,6 @@ static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout) { union ich8_hws_flash_ctrl hsflctl; union ich8_hws_flash_status hsfsts; - s32 ret_val = -E1000_ERR_NVM; u32 i = 0; /* Start a cycle by writing 1 in Flash Cycle Go in Hw Flash Control */ @@ -2327,7 +2326,7 @@ static s32 e1000_flash_cycle_ich8lan(struct e1000_hw *hw, u32 timeout) if (hsfsts.hsf_status.flcdone == 1 && hsfsts.hsf_status.flcerr == 0) return 0; - return ret_val; + return -E1000_ERR_NVM; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 10/15] e1000e: cleanup: remove unnecessary test and return 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (8 preceding siblings ...) 2012-02-13 21:47 ` [net-next 09/15] e1000e: cleanup: remove unnecessary variable ret_val Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 11/15] e1000e: cleanup: remove unnecessary variable initializations Jeff Kirsher ` (5 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Fall-through to a return statement that effectively does the same. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/phy.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index a8b99ba..0e86c7e 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -1264,8 +1264,6 @@ s32 e1000e_phy_force_speed_duplex_igp(struct e1000_hw *hw) PHY_FORCE_LIMIT, 100000, &link); - if (ret_val) - return ret_val; } return ret_val; -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 11/15] e1000e: cleanup: remove unnecessary variable initializations 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (9 preceding siblings ...) 2012-02-13 21:47 ` [net-next 10/15] e1000e: cleanup: remove unnecessary test and return Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 12/15] e1000e: cleanup: minor whitespace addition (insert blank line separator) Jeff Kirsher ` (4 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index c80ef41..e45235e 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -2114,7 +2114,7 @@ static s32 e1000_valid_nvm_bank_detect_ich8lan(struct e1000_hw *hw, u32 *bank) u32 bank1_offset = nvm->flash_bank_size * sizeof(u16); u32 act_offset = E1000_ICH_NVM_SIG_WORD * 2 + 1; u8 sig_byte = 0; - s32 ret_val = 0; + s32 ret_val; switch (hw->mac.type) { case e1000_ich8lan: @@ -2268,7 +2268,7 @@ static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw) ew16flash(ICH_FLASH_HSFSTS, hsfsts.regval); ret_val = 0; } else { - s32 i = 0; + s32 i; /* * Otherwise poll for sometime so the current -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 12/15] e1000e: cleanup: minor whitespace addition (insert blank line separator) 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (10 preceding siblings ...) 2012-02-13 21:47 ` [net-next 11/15] e1000e: cleanup: remove unnecessary variable initializations Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 13/15] e1000e: potentially incorrect return for e1000_init_hw_ich8lan Jeff Kirsher ` (3 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index e45235e..e2c546d 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -3479,6 +3479,7 @@ static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw) default: break; } + return e1000e_setup_copper_link(hw); } -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 13/15] e1000e: potentially incorrect return for e1000_init_hw_ich8lan 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (11 preceding siblings ...) 2012-02-13 21:47 ` [net-next 12/15] e1000e: cleanup: minor whitespace addition (insert blank line separator) Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 14/15] e1000e: potentially incorrect return for e1000e_setup_fiber_serdes_link Jeff Kirsher ` (2 subsequent siblings) 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the unlikely event that e1000_setup_link_ich8lan() returns an error, the returned error code value is not propagated to the caller of e1000_init_hw_ich8lan(). Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index e2c546d..c4d65b8 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -3276,7 +3276,7 @@ static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw) */ e1000_clear_hw_cntrs_ich8lan(hw); - return 0; + return ret_val; } /** * e1000_initialize_hw_bits_ich8lan - Initialize required hardware bits -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 14/15] e1000e: potentially incorrect return for e1000e_setup_fiber_serdes_link 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (12 preceding siblings ...) 2012-02-13 21:47 ` [net-next 13/15] e1000e: potentially incorrect return for e1000_init_hw_ich8lan Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 21:47 ` [net-next 15/15] e1000e: cleanup goto statements to exit points without common work Jeff Kirsher 2012-02-13 23:48 ` [net-next 00/15][pull request] Intel Wired LAN Driver updates David Miller 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> In the unlikely event that e1000_poll_fiber_serdes_link_generic() is called and it returns an error, the returned error code value is not propagated to the caller of e1000e_setup_fiber_serdes_link(). Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/mac.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c index b3b2f9e..943b909 100644 --- a/drivers/net/ethernet/intel/e1000e/mac.c +++ b/drivers/net/ethernet/intel/e1000e/mac.c @@ -922,7 +922,7 @@ s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw) e_dbg("No signal detected\n"); } - return 0; + return ret_val; } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* [net-next 15/15] e1000e: cleanup goto statements to exit points without common work 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (13 preceding siblings ...) 2012-02-13 21:47 ` [net-next 14/15] e1000e: potentially incorrect return for e1000e_setup_fiber_serdes_link Jeff Kirsher @ 2012-02-13 21:47 ` Jeff Kirsher 2012-02-13 23:48 ` [net-next 00/15][pull request] Intel Wired LAN Driver updates David Miller 15 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Per ./Documentation/CodingStyle, goto statements are acceptable for the centralized exiting of functions when there are multiple exit points which share common work such as cleanup. When no common work is required for multiple exit points, the function should just return at these exit points instead of doing an unnecessary jump to a centralized return. This patch cleans up the inappropriate use of goto statements, and removes unnecessary variables (or move to a smaller scope) where possible as a result of the cleanups. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 18 +-- drivers/net/ethernet/intel/e1000e/82571.c | 30 ++-- drivers/net/ethernet/intel/e1000e/ich8lan.c | 176 ++++++++----------- drivers/net/ethernet/intel/e1000e/mac.c | 15 +- drivers/net/ethernet/intel/e1000e/manage.c | 32 ++--- drivers/net/ethernet/intel/e1000e/netdev.c | 12 +- drivers/net/ethernet/intel/e1000e/nvm.c | 22 +-- drivers/net/ethernet/intel/e1000e/phy.c | 210 ++++++++++------------- 8 files changed, 212 insertions(+), 303 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c index 05a79cb..bc960fe 100644 --- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c +++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c @@ -714,22 +714,19 @@ static s32 e1000_get_cable_length_80003es2lan(struct e1000_hw *hw) ret_val = e1e_rphy(hw, GG82563_PHY_DSP_DISTANCE, &phy_data); if (ret_val) - goto out; + return ret_val; index = phy_data & GG82563_DSPD_CABLE_LENGTH; - if (index >= GG82563_CABLE_LENGTH_TABLE_SIZE - 5) { - ret_val = -E1000_ERR_PHY; - goto out; - } + if (index >= GG82563_CABLE_LENGTH_TABLE_SIZE - 5) + return -E1000_ERR_PHY; phy->min_cable_length = e1000_gg82563_cable_length_table[index]; phy->max_cable_length = e1000_gg82563_cable_length_table[index + 5]; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; -out: - return ret_val; + return 0; } /** @@ -1348,12 +1345,9 @@ static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw) */ ret_val = e1000_check_alt_mac_addr_generic(hw); if (ret_val) - goto out; - - ret_val = e1000_read_mac_addr_generic(hw); + return ret_val; -out: - return ret_val; + return e1000_read_mac_addr_generic(hw); } /** diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c index 05e9a29..b6b7bc4 100644 --- a/drivers/net/ethernet/intel/e1000e/82571.c +++ b/drivers/net/ethernet/intel/e1000e/82571.c @@ -564,7 +564,6 @@ static void e1000_put_hw_semaphore_82571(struct e1000_hw *hw) static s32 e1000_get_hw_semaphore_82573(struct e1000_hw *hw) { u32 extcnf_ctrl; - s32 ret_val = 0; s32 i = 0; extcnf_ctrl = er32(EXTCNF_CTRL); @@ -586,12 +585,10 @@ static s32 e1000_get_hw_semaphore_82573(struct e1000_hw *hw) /* Release semaphores */ e1000_put_hw_semaphore_82573(hw); e_dbg("Driver can't access the PHY\n"); - ret_val = -E1000_ERR_PHY; - goto out; + return -E1000_ERR_PHY; } -out: - return ret_val; + return 0; } /** @@ -1409,7 +1406,6 @@ bool e1000_check_phy_82574(struct e1000_hw *hw) { u16 status_1kbt = 0; u16 receive_errors = 0; - bool phy_hung = false; s32 ret_val = 0; /* @@ -1417,19 +1413,18 @@ bool e1000_check_phy_82574(struct e1000_hw *hw) * read the Base1000T status register If both are max then PHY is hung. */ ret_val = e1e_rphy(hw, E1000_RECEIVE_ERROR_COUNTER, &receive_errors); - if (ret_val) - goto out; + return false; if (receive_errors == E1000_RECEIVE_ERROR_MAX) { ret_val = e1e_rphy(hw, E1000_BASE1000T_STATUS, &status_1kbt); if (ret_val) - goto out; + return false; if ((status_1kbt & E1000_IDLE_ERROR_COUNT_MASK) == E1000_IDLE_ERROR_COUNT_MASK) - phy_hung = true; + return true; } -out: - return phy_hung; + + return false; } /** @@ -1831,9 +1826,9 @@ static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw) **/ static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw) { - s32 ret_val = 0; - if (hw->mac.type == e1000_82571) { + s32 ret_val = 0; + /* * If there's an alternate MAC address place it in RAR0 * so that it will override the Si installed default perm @@ -1841,13 +1836,10 @@ static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw) */ ret_val = e1000_check_alt_mac_addr_generic(hw); if (ret_val) - goto out; + return ret_val; } - ret_val = e1000_read_mac_addr_generic(hw); - -out: - return ret_val; + return e1000_read_mac_addr_generic(hw); } /** diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c index c4d65b8..f3282dc 100644 --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -351,7 +351,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) */ ret_val = e1000e_phy_hw_reset_generic(hw); if (ret_val) - goto out; + return ret_val; /* Ungate automatic PHY configuration on non-managed 82579 */ if ((hw->mac.type == e1000_pch2lan) && @@ -366,7 +366,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) default: ret_val = e1000e_get_phy_id(hw); if (ret_val) - goto out; + return ret_val; if ((phy->id != 0) && (phy->id != PHY_REVISION_MASK)) break; /* fall-through */ @@ -377,10 +377,10 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) */ ret_val = e1000_set_mdio_slow_mode_hv(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_get_phy_id(hw); if (ret_val) - goto out; + return ret_val; break; } phy->type = e1000e_get_phy_type_from_id(phy->id); @@ -406,7 +406,6 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) break; } -out: return ret_val; } @@ -635,20 +634,18 @@ static s32 e1000_set_eee_pchlan(struct e1000_hw *hw) u16 phy_reg; if (hw->phy.type != e1000_phy_82579) - goto out; + return 0; ret_val = e1e_rphy(hw, I82579_LPI_CTRL, &phy_reg); if (ret_val) - goto out; + return ret_val; if (hw->dev_spec.ich8lan.eee_disable) phy_reg &= ~I82579_LPI_CTRL_ENABLE_MASK; else phy_reg |= I82579_LPI_CTRL_ENABLE_MASK; - ret_val = e1e_wphy(hw, I82579_LPI_CTRL, phy_reg); -out: - return ret_val; + return e1e_wphy(hw, I82579_LPI_CTRL, phy_reg); } /** @@ -672,10 +669,8 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) * get_link_status flag is set upon receiving a Link Status * Change or Rx Sequence Error interrupt. */ - if (!mac->get_link_status) { - ret_val = 0; - goto out; - } + if (!mac->get_link_status) + return 0; /* * First we want to see if the MII Status Register reports @@ -684,16 +679,16 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) */ ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (hw->mac.type == e1000_pchlan) { ret_val = e1000_k1_gig_workaround_hv(hw, link); if (ret_val) - goto out; + return ret_val; } if (!link) - goto out; /* No link detected */ + return 0; /* No link detected */ mac->get_link_status = false; @@ -701,13 +696,13 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) case e1000_pch2lan: ret_val = e1000_k1_workaround_lv(hw); if (ret_val) - goto out; + return ret_val; /* fall-thru */ case e1000_pchlan: if (hw->phy.type == e1000_phy_82578) { ret_val = e1000_link_stall_workaround_hv(hw); if (ret_val) - goto out; + return ret_val; } /* @@ -737,16 +732,14 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) /* Enable/Disable EEE after link up */ ret_val = e1000_set_eee_pchlan(hw); if (ret_val) - goto out; + return ret_val; /* * If we are forcing speed/duplex, then we simply return since * we have already determined whether we have link or not. */ - if (!mac->autoneg) { - ret_val = -E1000_ERR_CONFIG; - goto out; - } + if (!mac->autoneg) + return -E1000_ERR_CONFIG; /* * Auto-Neg is enabled. Auto Speed Detection takes care @@ -765,7 +758,6 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw) if (ret_val) e_dbg("Error configuring flow control\n"); -out: return ret_val; } @@ -1008,15 +1000,13 @@ static s32 e1000_write_smbus_addr(struct e1000_hw *hw) ret_val = e1000_read_phy_reg_hv_locked(hw, HV_SMB_ADDR, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data &= ~HV_SMB_ADDR_MASK; phy_data |= (strap >> E1000_STRAP_SMBUS_ADDRESS_SHIFT); phy_data |= HV_SMB_ADDR_PEC_EN | HV_SMB_ADDR_VALID; - ret_val = e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR, phy_data); -out: - return ret_val; + return e1000_write_phy_reg_hv_locked(hw, HV_SMB_ADDR, phy_data); } /** @@ -1159,12 +1149,12 @@ static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link) bool k1_enable = hw->dev_spec.ich8lan.nvm_k1_enabled; if (hw->mac.type != e1000_pchlan) - goto out; + return 0; /* Wrap the whole flow with the sw flag */ ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; /* Disable K1 when link is 1Gbps, otherwise use the NVM setting */ if (link) { @@ -1218,7 +1208,7 @@ static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link) release: hw->phy.ops.release(hw); -out: + return ret_val; } @@ -1244,7 +1234,7 @@ s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable) E1000_KMRNCTRLSTA_K1_CONFIG, &kmrn_reg); if (ret_val) - goto out; + return ret_val; if (k1_enable) kmrn_reg |= E1000_KMRNCTRLSTA_K1_ENABLE; @@ -1255,7 +1245,7 @@ s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable) E1000_KMRNCTRLSTA_K1_CONFIG, kmrn_reg); if (ret_val) - goto out; + return ret_val; udelay(20); ctrl_ext = er32(CTRL_EXT); @@ -1273,8 +1263,7 @@ s32 e1000_configure_k1_ich8lan(struct e1000_hw *hw, bool k1_enable) e1e_flush(); udelay(20); -out: - return ret_val; + return 0; } /** @@ -1376,13 +1365,13 @@ static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) u16 phy_data; if (hw->mac.type != e1000_pchlan) - return ret_val; + return 0; /* Set MDIO slow mode before any other MDIO access */ if (hw->phy.type == e1000_phy_82577) { ret_val = e1000_set_mdio_slow_mode_hv(hw); if (ret_val) - goto out; + return ret_val; } if (((hw->phy.type == e1000_phy_82577) && @@ -1419,7 +1408,7 @@ static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, 0); hw->phy.ops.release(hw); if (ret_val) - goto out; + return ret_val; /* * Configure the K1 Si workaround during phy reset assuming there is @@ -1427,12 +1416,12 @@ static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) */ ret_val = e1000_k1_gig_workaround_hv(hw, true); if (ret_val) - goto out; + return ret_val; /* Workaround for link disconnects on a busy hub in half duplex */ ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ret_val = hw->phy.ops.read_reg_locked(hw, BM_PORT_GEN_CFG, &phy_data); if (ret_val) goto release; @@ -1440,7 +1429,7 @@ static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) phy_data & 0x00FF); release: hw->phy.ops.release(hw); -out: + return ret_val; } @@ -1497,13 +1486,13 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) u16 i; if (hw->mac.type != e1000_pch2lan) - goto out; + return 0; /* disable Rx path while enabling/disabling workaround */ e1e_rphy(hw, PHY_REG(769, 20), &phy_reg); ret_val = e1e_wphy(hw, PHY_REG(769, 20), phy_reg | (1 << 14)); if (ret_val) - goto out; + return ret_val; if (enable) { /* @@ -1545,24 +1534,24 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) E1000_KMRNCTRLSTA_CTRL_OFFSET, &data); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_CTRL_OFFSET, data | (1 << 0)); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_read_kmrn_reg(hw, E1000_KMRNCTRLSTA_HD_CTRL, &data); if (ret_val) - goto out; + return ret_val; data &= ~(0xF << 8); data |= (0xB << 8); ret_val = e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_HD_CTRL, data); if (ret_val) - goto out; + return ret_val; /* Enable jumbo frame workaround in the PHY */ e1e_rphy(hw, PHY_REG(769, 23), &data); @@ -1570,25 +1559,25 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) data |= (0x37 << 5); ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, PHY_REG(769, 16), &data); data &= ~(1 << 13); ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, PHY_REG(776, 20), &data); data &= ~(0x3FF << 2); data |= (0x1A << 2); ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); if (ret_val) - goto out; + return ret_val; ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0xF100); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, HV_PM_CTRL, &data); ret_val = e1e_wphy(hw, HV_PM_CTRL, data | (1 << 10)); if (ret_val) - goto out; + return ret_val; } else { /* Write MAC register values back to h/w defaults */ mac_reg = er32(FFLT_DBG); @@ -1603,56 +1592,53 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable) E1000_KMRNCTRLSTA_CTRL_OFFSET, &data); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_CTRL_OFFSET, data & ~(1 << 0)); if (ret_val) - goto out; + return ret_val; ret_val = e1000e_read_kmrn_reg(hw, E1000_KMRNCTRLSTA_HD_CTRL, &data); if (ret_val) - goto out; + return ret_val; data &= ~(0xF << 8); data |= (0xB << 8); ret_val = e1000e_write_kmrn_reg(hw, E1000_KMRNCTRLSTA_HD_CTRL, data); if (ret_val) - goto out; + return ret_val; /* Write PHY register values back to h/w defaults */ e1e_rphy(hw, PHY_REG(769, 23), &data); data &= ~(0x7F << 5); ret_val = e1e_wphy(hw, PHY_REG(769, 23), data); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, PHY_REG(769, 16), &data); data |= (1 << 13); ret_val = e1e_wphy(hw, PHY_REG(769, 16), data); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, PHY_REG(776, 20), &data); data &= ~(0x3FF << 2); data |= (0x8 << 2); ret_val = e1e_wphy(hw, PHY_REG(776, 20), data); if (ret_val) - goto out; + return ret_val; ret_val = e1e_wphy(hw, PHY_REG(776, 23), 0x7E00); if (ret_val) - goto out; + return ret_val; e1e_rphy(hw, HV_PM_CTRL, &data); ret_val = e1e_wphy(hw, HV_PM_CTRL, data & ~(1 << 10)); if (ret_val) - goto out; + return ret_val; } /* re-enable Rx path after enabling/disabling workaround */ - ret_val = e1e_wphy(hw, PHY_REG(769, 20), phy_reg & ~(1 << 14)); - -out: - return ret_val; + return e1e_wphy(hw, PHY_REG(769, 20), phy_reg & ~(1 << 14)); } /** @@ -1664,14 +1650,14 @@ static s32 e1000_lv_phy_workarounds_ich8lan(struct e1000_hw *hw) s32 ret_val = 0; if (hw->mac.type != e1000_pch2lan) - goto out; + return 0; /* Set MDIO slow mode before any other MDIO access */ ret_val = e1000_set_mdio_slow_mode_hv(hw); ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ret_val = hw->phy.ops.write_reg_locked(hw, I82579_EMI_ADDR, I82579_MSE_THRESHOLD); if (ret_val) @@ -1689,7 +1675,6 @@ static s32 e1000_lv_phy_workarounds_ich8lan(struct e1000_hw *hw) release: hw->phy.ops.release(hw); -out: return ret_val; } @@ -1707,12 +1692,12 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw) u16 phy_reg; if (hw->mac.type != e1000_pch2lan) - goto out; + return 0; /* Set K1 beacon duration based on 1Gbps speed or otherwise */ ret_val = e1e_rphy(hw, HV_M_STATUS, &status_reg); if (ret_val) - goto out; + return ret_val; if ((status_reg & (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE)) == (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE)) { @@ -1721,7 +1706,7 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw) ret_val = e1e_rphy(hw, I82579_LPI_CTRL, &phy_reg); if (ret_val) - goto out; + return ret_val; if (status_reg & HV_M_STATUS_SPEED_1000) { mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_8USEC; @@ -1734,7 +1719,6 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw) ret_val = e1e_wphy(hw, I82579_LPI_CTRL, phy_reg); } -out: return ret_val; } @@ -1805,7 +1789,7 @@ static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw) u16 reg; if (e1000_check_reset_block(hw)) - goto out; + return 0; /* Allow time for h/w to get to quiescent state after reset */ usleep_range(10000, 20000); @@ -1815,12 +1799,12 @@ static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw) case e1000_pchlan: ret_val = e1000_hv_phy_workarounds_ich8lan(hw); if (ret_val) - goto out; + return ret_val; break; case e1000_pch2lan: ret_val = e1000_lv_phy_workarounds_ich8lan(hw); if (ret_val) - goto out; + return ret_val; break; default: break; @@ -1836,7 +1820,7 @@ static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw) /* Configure the LCD with the extended configuration region in NVM */ ret_val = e1000_sw_lcd_config_ich8lan(hw); if (ret_val) - goto out; + return ret_val; /* Configure the LCD with the OEM bits in NVM */ ret_val = e1000_oem_bits_config_ich8lan(hw, true); @@ -1851,18 +1835,16 @@ static s32 e1000_post_phy_reset_ich8lan(struct e1000_hw *hw) /* Set EEE LPI Update Timer to 200usec */ ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; ret_val = hw->phy.ops.write_reg_locked(hw, I82579_EMI_ADDR, I82579_LPI_UPDATE_TIMER); - if (ret_val) - goto release; - ret_val = hw->phy.ops.write_reg_locked(hw, I82579_EMI_DATA, - 0x1387); -release: + if (!ret_val) + ret_val = hw->phy.ops.write_reg_locked(hw, + I82579_EMI_DATA, + 0x1387); hw->phy.ops.release(hw); } -out: return ret_val; } @@ -1885,12 +1867,9 @@ static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw) ret_val = e1000e_phy_hw_reset_generic(hw); if (ret_val) - goto out; - - ret_val = e1000_post_phy_reset_ich8lan(hw); + return ret_val; -out: - return ret_val; + return e1000_post_phy_reset_ich8lan(hw); } /** @@ -1911,7 +1890,7 @@ static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active) ret_val = e1e_rphy(hw, HV_OEM_BITS, &oem_reg); if (ret_val) - goto out; + return ret_val; if (active) oem_reg |= HV_OEM_BITS_LPLU; @@ -1921,10 +1900,7 @@ static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active) if (!e1000_check_reset_block(hw)) oem_reg |= HV_OEM_BITS_RESTART_AN; - ret_val = e1e_wphy(hw, HV_OEM_BITS, oem_reg); - -out: - return ret_val; + return e1e_wphy(hw, HV_OEM_BITS, oem_reg); } /** @@ -3001,7 +2977,7 @@ static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw) /* Get default ID LED modes */ ret_val = hw->nvm.ops.valid_led_default(hw, &data); if (ret_val) - goto out; + return ret_val; mac->ledctl_default = er32(LEDCTL); mac->ledctl_mode1 = mac->ledctl_default; @@ -3046,8 +3022,7 @@ static s32 e1000_id_led_init_pchlan(struct e1000_hw *hw) } } -out: - return ret_val; + return 0; } /** @@ -3162,11 +3137,11 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) if (ctrl & E1000_CTRL_PHY_RST) { ret_val = hw->phy.ops.get_cfg_done(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1000_post_phy_reset_ich8lan(hw); if (ret_val) - goto out; + return ret_val; } /* @@ -3184,8 +3159,7 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) kab |= E1000_KABGTXD_BGSQLBIAS; ew32(KABGTXD, kab); -out: - return ret_val; + return 0; } /** diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c index 943b909..17991e6 100644 --- a/drivers/net/ethernet/intel/e1000e/mac.c +++ b/drivers/net/ethernet/intel/e1000e/mac.c @@ -172,23 +172,23 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) ret_val = e1000_read_nvm(hw, NVM_COMPAT, 1, &nvm_data); if (ret_val) - goto out; + return ret_val; /* not supported on 82573 */ if (hw->mac.type == e1000_82573) - goto out; + return 0; ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1, &nvm_alt_mac_addr_offset); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } if ((nvm_alt_mac_addr_offset == 0xFFFF) || (nvm_alt_mac_addr_offset == 0x0000)) /* There is no Alternate MAC Address */ - goto out; + return 0; if (hw->bus.func == E1000_FUNC_1) nvm_alt_mac_addr_offset += E1000_ALT_MAC_ADDRESS_OFFSET_LAN1; @@ -197,7 +197,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) ret_val = e1000_read_nvm(hw, offset, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } alt_mac_addr[i] = (u8)(nvm_data & 0xFF); @@ -207,7 +207,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) /* if multicast bit is set, the alternate address will not be used */ if (is_multicast_ether_addr(alt_mac_addr)) { e_dbg("Ignoring Alternate Mac Address with MC bit set\n"); - goto out; + return 0; } /* @@ -217,8 +217,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw) */ e1000e_rar_set(hw, alt_mac_addr, 0); -out: - return ret_val; + return 0; } /** diff --git a/drivers/net/ethernet/intel/e1000e/manage.c b/drivers/net/ethernet/intel/e1000e/manage.c index c54caf6..0d24b13 100644 --- a/drivers/net/ethernet/intel/e1000e/manage.c +++ b/drivers/net/ethernet/intel/e1000e/manage.c @@ -140,7 +140,7 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) /* No manageability, no filtering */ if (!e1000e_check_mng_mode(hw)) { hw->mac.tx_pkt_filtering = false; - goto out; + return hw->mac.tx_pkt_filtering; } /* @@ -150,7 +150,7 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) ret_val = e1000_mng_enable_host_if(hw); if (ret_val) { hw->mac.tx_pkt_filtering = false; - goto out; + return hw->mac.tx_pkt_filtering; } /* Read in the header. Length and offset are in dwords. */ @@ -170,16 +170,13 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) */ if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) { hw->mac.tx_pkt_filtering = true; - goto out; + return hw->mac.tx_pkt_filtering; } /* Cookie area is valid, make the final check for filtering. */ - if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) { + if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) hw->mac.tx_pkt_filtering = false; - goto out; - } -out: return hw->mac.tx_pkt_filtering; } @@ -336,12 +333,11 @@ bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw) { u32 manc; u32 fwsm, factps; - bool ret_val = false; manc = er32(MANC); if (!(manc & E1000_MANC_RCV_TCO_EN)) - goto out; + return false; if (hw->mac.has_fwsm) { fwsm = er32(FWSM); @@ -349,10 +345,8 @@ bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw) if (!(factps & E1000_FACTPS_MNGCG) && ((fwsm & E1000_FWSM_MODE_MASK) == - (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT))) { - ret_val = true; - goto out; - } + (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT))) + return true; } else if ((hw->mac.type == e1000_82574) || (hw->mac.type == e1000_82583)) { u16 data; @@ -362,16 +356,12 @@ bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw) if (!(factps & E1000_FACTPS_MNGCG) && ((data & E1000_NVM_INIT_CTRL2_MNGM) == - (e1000_mng_mode_pt << 13))) { - ret_val = true; - goto out; - } + (e1000_mng_mode_pt << 13))) + return true; } else if ((manc & E1000_MANC_SMBUS_EN) && !(manc & E1000_MANC_ASF_EN)) { - ret_val = true; - goto out; + return true; } -out: - return ret_val; + return false; } diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index c11b40b..c079b9b 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -1985,7 +1985,7 @@ static int e1000_request_msix(struct e1000_adapter *adapter) e1000_intr_msix_rx, 0, adapter->rx_ring->name, netdev); if (err) - goto out; + return err; adapter->rx_ring->itr_register = adapter->hw.hw_addr + E1000_EITR_82574(vector); adapter->rx_ring->itr_val = adapter->itr; @@ -2001,7 +2001,7 @@ static int e1000_request_msix(struct e1000_adapter *adapter) e1000_intr_msix_tx, 0, adapter->tx_ring->name, netdev); if (err) - goto out; + return err; adapter->tx_ring->itr_register = adapter->hw.hw_addr + E1000_EITR_82574(vector); adapter->tx_ring->itr_val = adapter->itr; @@ -2010,12 +2010,11 @@ static int e1000_request_msix(struct e1000_adapter *adapter) err = request_irq(adapter->msix_entries[vector].vector, e1000_msix_other, 0, netdev->name, netdev); if (err) - goto out; + return err; e1000_configure_msix(adapter); + return 0; -out: - return err; } /** @@ -2367,7 +2366,7 @@ static unsigned int e1000_update_itr(struct e1000_adapter *adapter, unsigned int retval = itr_setting; if (packets == 0) - goto update_itr_done; + return itr_setting; switch (itr_setting) { case lowest_latency: @@ -2402,7 +2401,6 @@ static unsigned int e1000_update_itr(struct e1000_adapter *adapter, break; } -update_itr_done: return retval; } diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c index 1b50db5..24b7930 100644 --- a/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/drivers/net/ethernet/intel/e1000e/nvm.c @@ -446,20 +446,19 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, if (pba_num == NULL) { e_dbg("PBA string buffer was null\n"); - ret_val = E1000_ERR_INVALID_ARGUMENT; - goto out; + return -E1000_ERR_INVALID_ARGUMENT; } ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_0, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_1, 1, &pba_ptr); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } /* @@ -499,25 +498,23 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, pba_num[offset] += 'A' - 0xA; } - goto out; + return 0; } ret_val = e1000_read_nvm(hw, pba_ptr, 1, &length); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } if (length == 0xFFFF || length == 0) { e_dbg("NVM PBA number section invalid length\n"); - ret_val = E1000_ERR_NVM_PBA_SECTION; - goto out; + return -E1000_ERR_NVM_PBA_SECTION; } /* check if pba_num buffer is big enough */ if (pba_num_size < (((u32)length * 2) - 1)) { e_dbg("PBA string buffer too small\n"); - ret_val = E1000_ERR_NO_SPACE; - goto out; + return -E1000_ERR_NO_SPACE; } /* trim pba length from start of string */ @@ -528,15 +525,14 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, ret_val = e1000_read_nvm(hw, pba_ptr + offset, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); - goto out; + return ret_val; } pba_num[offset * 2] = (u8)(nvm_data >> 8); pba_num[(offset * 2) + 1] = (u8)(nvm_data & 0xFF); } pba_num[offset * 2] = '\0'; -out: - return ret_val; + return 0; } /** diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index 0e86c7e..d4dbbe7 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -133,29 +133,29 @@ s32 e1000e_get_phy_id(struct e1000_hw *hw) u16 retry_count = 0; if (!phy->ops.read_reg) - goto out; + return 0; while (retry_count < 2) { ret_val = e1e_rphy(hw, PHY_ID1, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id = (u32)(phy_id << 16); udelay(20); ret_val = e1e_rphy(hw, PHY_ID2, &phy_id); if (ret_val) - goto out; + return ret_val; phy->id |= (u32)(phy_id & PHY_REVISION_MASK); phy->revision = (u32)(phy_id & ~PHY_REVISION_MASK); if (phy->id != 0 && phy->id != PHY_REVISION_MASK) - goto out; + return 0; retry_count++; } -out: - return ret_val; + + return 0; } /** @@ -383,28 +383,24 @@ static s32 __e1000e_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data, if (!locked) { if (!hw->phy.ops.acquire) - goto out; + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } - if (offset > MAX_PHY_MULTI_PAGE_REG) { + if (offset > MAX_PHY_MULTI_PAGE_REG) ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, (u16)offset); - if (ret_val) - goto release; - } - - ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); - -release: + if (!ret_val) + ret_val = e1000e_read_phy_reg_mdic(hw, + MAX_PHY_REG_ADDRESS & offset, + data); if (!locked) hw->phy.ops.release(hw); -out: + return ret_val; } @@ -454,29 +450,24 @@ static s32 __e1000e_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data, if (!locked) { if (!hw->phy.ops.acquire) - goto out; + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } - if (offset > MAX_PHY_MULTI_PAGE_REG) { + if (offset > MAX_PHY_MULTI_PAGE_REG) ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, (u16)offset); - if (ret_val) - goto release; - } - - ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & offset, - data); - -release: + if (!ret_val) + ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & + offset, + data); if (!locked) hw->phy.ops.release(hw); -out: return ret_val; } @@ -523,15 +514,16 @@ static s32 __e1000_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data, bool locked) { u32 kmrnctrlsta; - s32 ret_val = 0; if (!locked) { + s32 ret_val = 0; + if (!hw->phy.ops.acquire) - goto out; + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & @@ -547,8 +539,7 @@ static s32 __e1000_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data, if (!locked) hw->phy.ops.release(hw); -out: - return ret_val; + return 0; } /** @@ -596,15 +587,16 @@ static s32 __e1000_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data, bool locked) { u32 kmrnctrlsta; - s32 ret_val = 0; if (!locked) { + s32 ret_val = 0; + if (!hw->phy.ops.acquire) - goto out; + return 0; ret_val = hw->phy.ops.acquire(hw); if (ret_val) - goto out; + return ret_val; } kmrnctrlsta = ((offset << E1000_KMRNCTRLSTA_OFFSET_SHIFT) & @@ -617,8 +609,7 @@ static s32 __e1000_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data, if (!locked) hw->phy.ops.release(hw); -out: - return ret_val; + return 0; } /** @@ -663,17 +654,14 @@ s32 e1000_copper_link_setup_82577(struct e1000_hw *hw) /* Enable CRS on Tx. This must be set for half-duplex operation. */ ret_val = e1e_rphy(hw, I82577_CFG_REG, &phy_data); if (ret_val) - goto out; + return ret_val; phy_data |= I82577_CFG_ASSERT_CRS_ON_TX; /* Enable downshift */ phy_data |= I82577_CFG_ENABLE_DOWNSHIFT; - ret_val = e1e_wphy(hw, I82577_CFG_REG, phy_data); - -out: - return ret_val; + return e1e_wphy(hw, I82577_CFG_REG, phy_data); } /** @@ -1397,25 +1385,25 @@ s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw) ret_val = e1e_rphy(hw, PHY_CONTROL, &data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &data); ret_val = e1e_wphy(hw, PHY_CONTROL, data); if (ret_val) - goto out; + return ret_val; /* Disable MDI-X support for 10/100 */ ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &data); if (ret_val) - goto out; + return ret_val; data &= ~IFE_PMC_AUTO_MDIX; data &= ~IFE_PMC_FORCE_MDIX; ret_val = e1e_wphy(hw, IFE_PHY_MDIX_CONTROL, data); if (ret_val) - goto out; + return ret_val; e_dbg("IFE PMC: %X\n", data); @@ -1429,7 +1417,7 @@ s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw) 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) e_dbg("Link taking longer than expected.\n"); @@ -1440,11 +1428,10 @@ s32 e1000_phy_force_speed_duplex_ife(struct e1000_hw *hw) 100000, &link); if (ret_val) - goto out; + return ret_val; } -out: - return ret_val; + return 0; } /** @@ -1829,22 +1816,20 @@ s32 e1000e_get_cable_length_m88(struct e1000_hw *hw) ret_val = e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); if (ret_val) - goto out; + return ret_val; index = (phy_data & M88E1000_PSSR_CABLE_LENGTH) >> M88E1000_PSSR_CABLE_LENGTH_SHIFT; - if (index >= M88E1000_CABLE_LENGTH_TABLE_SIZE - 1) { - ret_val = -E1000_ERR_PHY; - goto out; - } + + if (index >= M88E1000_CABLE_LENGTH_TABLE_SIZE - 1) + return -E1000_ERR_PHY; phy->min_cable_length = e1000_m88_cable_length_table[index]; phy->max_cable_length = e1000_m88_cable_length_table[index + 1]; phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; -out: - return ret_val; + return 0; } /** @@ -2069,24 +2054,23 @@ s32 e1000_get_phy_info_ife(struct e1000_hw *hw) ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) { e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } ret_val = e1e_rphy(hw, IFE_PHY_SPECIAL_CONTROL, &data); if (ret_val) - goto out; + return ret_val; phy->polarity_correction = (data & IFE_PSC_AUTO_POLARITY_DISABLE) ? false : true; if (phy->polarity_correction) { ret_val = e1000_check_polarity_ife(hw); if (ret_val) - goto out; + return ret_val; } else { /* Polarity is forced */ phy->cable_polarity = (data & IFE_PSC_FORCE_POLARITY) @@ -2096,7 +2080,7 @@ s32 e1000_get_phy_info_ife(struct e1000_hw *hw) ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &data); if (ret_val) - goto out; + return ret_val; phy->is_mdix = (data & IFE_PMC_MDIX_STATUS) ? true : false; @@ -2105,8 +2089,7 @@ s32 e1000_get_phy_info_ife(struct e1000_hw *hw) phy->local_rx = e1000_1000t_rx_status_undefined; phy->remote_rx = e1000_1000t_rx_status_undefined; -out: - return ret_val; + return 0; } /** @@ -2365,7 +2348,6 @@ enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id) **/ s32 e1000e_determine_phy_address(struct e1000_hw *hw) { - s32 ret_val = -E1000_ERR_PHY_TYPE; u32 phy_addr = 0; u32 i; enum e1000_phy_type phy_type = e1000_phy_unknown; @@ -2384,17 +2366,15 @@ s32 e1000e_determine_phy_address(struct e1000_hw *hw) * If phy_type is valid, break - we found our * PHY address */ - if (phy_type != e1000_phy_unknown) { - ret_val = 0; - goto out; - } + if (phy_type != e1000_phy_unknown) + return 0; + usleep_range(1000, 2000); i++; } while (i < 10); } -out: - return ret_val; + return -E1000_ERR_PHY_TYPE; } /** @@ -2638,14 +2618,14 @@ s32 e1000_enable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) ret_val = e1000_set_page_igp(hw, (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); if (ret_val) { e_dbg("Could not set Port Control page\n"); - goto out; + return ret_val; } ret_val = e1000e_read_phy_reg_mdic(hw, BM_WUC_ENABLE_REG, phy_reg); if (ret_val) { e_dbg("Could not read PHY register %d.%d\n", BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); - goto out; + return ret_val; } /* @@ -2660,15 +2640,14 @@ s32 e1000_enable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) if (ret_val) { e_dbg("Could not write PHY register %d.%d\n", BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); - goto out; + return ret_val; } - /* Select Host Wakeup Registers page */ - ret_val = e1000_set_page_igp(hw, (BM_WUC_PAGE << IGP_PAGE_SHIFT)); - - /* caller now able to write registers on the Wakeup registers page */ -out: - return ret_val; + /* + * Select Host Wakeup Registers page - caller now able to write + * registers on the Wakeup registers page + */ + return e1000_set_page_igp(hw, (BM_WUC_PAGE << IGP_PAGE_SHIFT)); } /** @@ -2690,7 +2669,7 @@ s32 e1000_disable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) ret_val = e1000_set_page_igp(hw, (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); if (ret_val) { e_dbg("Could not set Port Control page\n"); - goto out; + return ret_val; } /* Restore 769.17 to its original value */ @@ -2698,7 +2677,7 @@ s32 e1000_disable_phy_wakeup_reg_access_bm(struct e1000_hw *hw, u16 *phy_reg) if (ret_val) e_dbg("Could not restore PHY register %d.%d\n", BM_PORT_CTRL_PAGE, BM_WUC_ENABLE_REG); -out: + return ret_val; } @@ -2746,7 +2725,7 @@ static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset, ret_val = e1000_enable_phy_wakeup_reg_access_bm(hw, &phy_reg); if (ret_val) { e_dbg("Could not enable PHY wakeup reg access\n"); - goto out; + return ret_val; } } @@ -2756,7 +2735,7 @@ static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset, ret_val = e1000e_write_phy_reg_mdic(hw, BM_WUC_ADDRESS_OPCODE, reg); if (ret_val) { e_dbg("Could not write address opcode to page %d\n", page); - goto out; + return ret_val; } if (read) { @@ -2771,13 +2750,12 @@ static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset, if (ret_val) { e_dbg("Could not access PHY reg %d.%d\n", page, reg); - goto out; + return ret_val; } if (!page_set) ret_val = e1000_disable_phy_wakeup_reg_access_bm(hw, &phy_reg); -out: return ret_val; } @@ -3133,7 +3111,7 @@ static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, ret_val = e1000e_write_phy_reg_mdic(hw, addr_reg, (u16)offset & 0x3F); if (ret_val) { e_dbg("Could not write the Address Offset port register\n"); - goto out; + return ret_val; } /* Read or write the data value next */ @@ -3142,12 +3120,9 @@ static s32 e1000_access_phy_debug_regs_hv(struct e1000_hw *hw, u32 offset, else ret_val = e1000e_write_phy_reg_mdic(hw, data_reg, *data); - if (ret_val) { + if (ret_val) e_dbg("Could not access the Data port register\n"); - goto out; - } -out: return ret_val; } @@ -3168,17 +3143,17 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw) u16 data; if (hw->phy.type != e1000_phy_82578) - goto out; + return 0; /* Do not apply workaround if in PHY loopback bit 14 set */ e1e_rphy(hw, PHY_CONTROL, &data); if (data & PHY_CONTROL_LB) - goto out; + return 0; /* check if link is up and at 1Gbps */ ret_val = e1e_rphy(hw, BM_CS_STATUS, &data); if (ret_val) - goto out; + return ret_val; data &= BM_CS_STATUS_LINK_UP | BM_CS_STATUS_RESOLVED | @@ -3187,7 +3162,7 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw) if (data != (BM_CS_STATUS_LINK_UP | BM_CS_STATUS_RESOLVED | BM_CS_STATUS_SPEED_1000)) - goto out; + return 0; mdelay(200); @@ -3195,12 +3170,9 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw) ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC | HV_MUX_DATA_CTRL_FORCE_SPEED); if (ret_val) - goto out; - - ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC); + return ret_val; -out: - return ret_val; + return e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC); } /** @@ -3242,13 +3214,13 @@ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw) ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data); if (ret_val) - goto out; + return ret_val; e1000e_phy_force_speed_duplex_setup(hw, &phy_data); ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data); if (ret_val) - goto out; + return ret_val; udelay(1); @@ -3260,7 +3232,7 @@ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw) 100000, &link); if (ret_val) - goto out; + return ret_val; if (!link) e_dbg("Link taking longer than expected.\n"); @@ -3270,11 +3242,8 @@ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw) PHY_FORCE_LIMIT, 100000, &link); - if (ret_val) - goto out; } -out: return ret_val; } @@ -3296,23 +3265,22 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw) ret_val = e1000e_phy_has_link_generic(hw, 1, 0, &link); if (ret_val) - goto out; + return ret_val; if (!link) { e_dbg("Phy info is only valid if link is up\n"); - ret_val = -E1000_ERR_CONFIG; - goto out; + return -E1000_ERR_CONFIG; } phy->polarity_correction = true; ret_val = e1000_check_polarity_82577(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, I82577_PHY_STATUS_2, &data); if (ret_val) - goto out; + return ret_val; phy->is_mdix = (data & I82577_PHY_STATUS2_MDIX) ? true : false; @@ -3320,11 +3288,11 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw) I82577_PHY_STATUS2_SPEED_1000MBPS) { ret_val = hw->phy.ops.get_cable_length(hw); if (ret_val) - goto out; + return ret_val; ret_val = e1e_rphy(hw, PHY_1000T_STATUS, &data); if (ret_val) - goto out; + return ret_val; phy->local_rx = (data & SR_1000T_LOCAL_RX_STATUS) ? e1000_1000t_rx_status_ok @@ -3339,8 +3307,7 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw) phy->remote_rx = e1000_1000t_rx_status_undefined; } -out: - return ret_val; + return 0; } /** @@ -3358,7 +3325,7 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw) ret_val = e1e_rphy(hw, I82577_PHY_DIAG_STATUS, &phy_data); if (ret_val) - goto out; + return ret_val; length = (phy_data & I82577_DSTATUS_CABLE_LENGTH) >> I82577_DSTATUS_CABLE_LENGTH_SHIFT; @@ -3368,6 +3335,5 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw) phy->cable_length = length; -out: - return ret_val; + return 0; } -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver updates 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher ` (14 preceding siblings ...) 2012-02-13 21:47 ` [net-next 15/15] e1000e: cleanup goto statements to exit points without common work Jeff Kirsher @ 2012-02-13 23:48 ` David Miller 15 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2012-02-13 23:48 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Mon, 13 Feb 2012 13:47:35 -0800 > The following series contains updates to e1000e only. All of the > patches are cleanup of the e1000e driver. > > The following are changes since commit fafdbf84d7eb2cd7aee435cc381a0796e1a5ccb0: > trivial: typo hnalder -> handler > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-01-11 10:23 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2013-01-11 10:23 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to e1000e only. The following are changes since commit 1def9238d4aa2146924994aa4b7dc861f03b9362: net_sched: more precise pkt_len computation and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Bruce Allan (15): e1000e: SerDes autoneg flow control e1000e: Acquire/release semaphore when writing each EEPROM page e1000e: Invalid Image CSUM bit changed for I217 e1000e: helper functions for accessing EMI registers e1000e: 82577: workaround for link drop issue e1000e: fix enabling of EEE on 82579 and I217 e1000e: unexpected "Reset adapter" message when cable pulled e1000e: add missing bailout on error e1000e: resolve checkpatch PREFER_PR_LEVEL warning e1000e: cleanup redundant statistics counter e1000e: cleanup unusual comment placement e1000e: cleanup unnecessary line wrap e1000e: cleanup magic number e1000e: cleanup code duplication e1000e: merge multiple conditional statements into one drivers/net/ethernet/intel/e1000e/defines.h | 10 +- drivers/net/ethernet/intel/e1000e/e1000.h | 2 +- drivers/net/ethernet/intel/e1000e/ethtool.c | 1 - drivers/net/ethernet/intel/e1000e/hw.h | 4 + drivers/net/ethernet/intel/e1000e/ich8lan.c | 213 +++++++++++++++++++++------- drivers/net/ethernet/intel/e1000e/mac.c | 125 ++++++++++++++++ drivers/net/ethernet/intel/e1000e/netdev.c | 67 ++++----- drivers/net/ethernet/intel/e1000e/nvm.c | 26 ++-- drivers/net/ethernet/intel/e1000e/param.c | 3 +- 9 files changed, 340 insertions(+), 111 deletions(-) -- 1.7.11.7 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-03-08 10:07 Jeff Kirsher 2013-03-08 17:25 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2013-03-08 10:07 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to ixgbevf and e1000e. Alex's ixgbevf patch is meant to address several race issues that become possible because next_to_watch could possibly be set to a value that shows that the descriptor is done when it is not. In order to correct that we instead make next_to_watch a pointer that is set to NULL during cleanup, and set to the eop_desc after the descriptor rings have been written. Stephen's ixgbevf patch makes the PCI id table a const and reformats the table to match what the ixgbe driver does. The remaining 13 patches from Bruce are cleanup patches for e1000e to resolve checkpatch.pl warnings/errors, removing blank lines where necessary and fix code formatting. The following are changes since commit 7f0e44ac9f7f12a2519bfed9ea4df3c1471bd8bb: ipv6 flowlabel: add __rcu annotations and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Alexander Duyck (1): ixgbevf: Make next_to_watch a pointer and adjust memory barriers to avoid races Bruce Allan (13): e1000e: cleanup CODE_INDENT checkpatch errors e1000e: cleanup SPACING checkpatch errors and warnings e1000e: cleanup LONG_LINE checkpatch warnings e1000e: cleanup LEADING_SPACE checkpatch warnings e1000e: cleanup PARENTHESIS_ALIGNMENT checkpatch checks e1000e: cleanup SPACING checkpatch checks e1000e: cleanup (add/remove) blank lines where appropriate e1000e: cleanup unusually placed comments e1000e: cleanup formatting of static structs e1000e: cleanup unnecessary line breaks e1000e: cleanup USLEEP_RANGE checkpatch checks e1000e: cleanup format of struct e1000_opt_list struct e1000e: cleanup - move defines to appropriate header file Stephen Hemminger (1): ixgbevf: use PCI_DEVICE_TABLE macro drivers/net/ethernet/intel/e1000e/80003es2lan.c | 131 ++++++----- drivers/net/ethernet/intel/e1000e/82571.c | 38 ++- drivers/net/ethernet/intel/e1000e/82571.h | 2 + drivers/net/ethernet/intel/e1000e/defines.h | 25 +- drivers/net/ethernet/intel/e1000e/e1000.h | 18 +- drivers/net/ethernet/intel/e1000e/ethtool.c | 177 +++++++------- drivers/net/ethernet/intel/e1000e/hw.h | 4 +- drivers/net/ethernet/intel/e1000e/ich8lan.c | 195 ++++++++-------- drivers/net/ethernet/intel/e1000e/mac.c | 10 +- drivers/net/ethernet/intel/e1000e/netdev.c | 269 ++++++++++------------ drivers/net/ethernet/intel/e1000e/nvm.c | 2 +- drivers/net/ethernet/intel/e1000e/param.c | 62 +++-- drivers/net/ethernet/intel/e1000e/phy.c | 130 +++++------ drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 80 ++++--- 15 files changed, 574 insertions(+), 571 deletions(-) -- 1.7.11.7 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2013-03-08 10:07 Jeff Kirsher @ 2013-03-08 17:25 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2013-03-08 17:25 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Fri, 8 Mar 2013 02:07:02 -0800 > This series contains updates to ixgbevf and e1000e. > > Alex's ixgbevf patch is meant to address several race issues that become > possible because next_to_watch could possibly be set to a value that shows > that the descriptor is done when it is not. In order to correct that we > instead make next_to_watch a pointer that is set to NULL during cleanup, > and set to the eop_desc after the descriptor rings have been written. > > Stephen's ixgbevf patch makes the PCI id table a const and reformats the > table to match what the ixgbe driver does. > > The remaining 13 patches from Bruce are cleanup patches for e1000e to > resolve checkpatch.pl warnings/errors, removing blank lines where > necessary and fix code formatting. > > The following are changes since commit 7f0e44ac9f7f12a2519bfed9ea4df3c1471bd8bb: > ipv6 flowlabel: add __rcu annotations > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-04-18 23:30 Jeff Kirsher 2013-04-19 18:19 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2013-04-18 23:30 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to ixgbe and igb. The ixgbe changes contains 2 patches from the community, one which is a fix from akepner to fix a issue where netif_running() in shutdown was not done under rtnl_lock. The other community fix from Joe Perches cleans up #ifdef CONFIG_DEBUG_FS which is no longer necessary. The last ixgbe patch, from Jacob Keller, adds support for WoL on 82559 SFP+ LOM. The remaining patches are against igb, 10 of which were previously submitted in a pull request where changes were requested. The following igb patches: igb: Support for 100base-fx SFP igb: Support to read and export SFF-8472/8079 data are v2 based on feedback from Dan Carpenter and Ben Hutchings in the previous pull request. The largest set of changes are in my patch to cleanup code comments and whitespace to align the igb driver with the networking style of code comments. While cleaning up the code comments, fixed several other whitespace/checkpatch.pl code formatting issues. Other notable igb patches are EEE capable devices query the PHY to determine what the link partner is advertising, added support for i354 devices and added support for spoofchk config. The following are changes since commit c1cb0d3b569b1d21ada8666efb42dfd437617a09: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Akeem G. Abodunrin (5): igb: Support for 100base-fx SFP igb: Support to read and export SFF-8472/8079 data igb: Implement support to power sfp cage and turn on I2C igb: random code and comments fix igb: Fix sparse warnings on function pointers Alexander Duyck (3): igb: Mask off check of frag_off as we only want fragment offset igb: Pull adapter out of main path in igb_xmit_frame_ring igb: Use rx/tx_itr_setting when setting up initial value of itr Carolyn Wyborny (1): igb: Add support for i354 devices Jacob Keller (1): ixgbe: Add support for WoL on 82599 SFP+ LOM Jeff Kirsher (1): igb: Fix code comments and whitespace Joe Perches (1): ixgbe: Remove unnecessary #ifdef CONFIG_DEBUG_FS tests Lior Levy (1): igb: add support for spoofchk config Matthew Vick (1): igb: Enable EEE LP advertisement akepner (1): ixgbe: in shutdown, do netif_running() under rtnl_lock drivers/net/ethernet/intel/igb/e1000_82575.c | 252 +++-- drivers/net/ethernet/intel/igb/e1000_82575.h | 2 + drivers/net/ethernet/intel/igb/e1000_defines.h | 50 +- drivers/net/ethernet/intel/igb/e1000_hw.h | 57 +- drivers/net/ethernet/intel/igb/e1000_i210.c | 93 +- drivers/net/ethernet/intel/igb/e1000_i210.h | 4 + drivers/net/ethernet/intel/igb/e1000_mac.c | 124 +-- drivers/net/ethernet/intel/igb/e1000_mac.h | 17 +- drivers/net/ethernet/intel/igb/e1000_mbx.c | 11 +- drivers/net/ethernet/intel/igb/e1000_mbx.h | 52 +- drivers/net/ethernet/intel/igb/e1000_nvm.c | 27 +- drivers/net/ethernet/intel/igb/e1000_phy.c | 259 ++--- drivers/net/ethernet/intel/igb/e1000_regs.h | 53 +- drivers/net/ethernet/intel/igb/igb.h | 133 +-- drivers/net/ethernet/intel/igb/igb_ethtool.c | 345 +++++-- drivers/net/ethernet/intel/igb/igb_hwmon.c | 29 +- drivers/net/ethernet/intel/igb/igb_main.c | 1270 +++++++++++++----------- drivers/net/ethernet/intel/igb/igb_ptp.c | 61 +- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 5 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 +- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 21 files changed, 1604 insertions(+), 1256 deletions(-) -- 1.7.11.7 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2013-04-18 23:30 Jeff Kirsher @ 2013-04-19 18:19 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2013-04-19 18:19 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 18 Apr 2013 16:30:07 -0700 > This series contains updates to ixgbe and igb. > > The ixgbe changes contains 2 patches from the community, one which is a > fix from akepner to fix a issue where netif_running() in shutdown was > not done under rtnl_lock. The other community fix from Joe Perches > cleans up #ifdef CONFIG_DEBUG_FS which is no longer necessary. The > last ixgbe patch, from Jacob Keller, adds support for WoL on 82559 > SFP+ LOM. > > The remaining patches are against igb, 10 of which were previously > submitted in a pull request where changes were requested. > > The following igb patches: > igb: Support for 100base-fx SFP > igb: Support to read and export SFF-8472/8079 data > are v2 based on feedback from Dan Carpenter and Ben Hutchings in > the previous pull request. > > The largest set of changes are in my patch to cleanup code comments > and whitespace to align the igb driver with the networking style of > code comments. While cleaning up the code comments, fixed several > other whitespace/checkpatch.pl code formatting issues. > > Other notable igb patches are EEE capable devices query the PHY to > determine what the link partner is advertising, added support for > i354 devices and added support for spoofchk config. > > The following are changes since commit c1cb0d3b569b1d21ada8666efb42dfd437617a09: > Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks a lot Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-07-29 12:51 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2013-07-29 12:51 UTC (permalink / raw) To: davem, bhelgaas; +Cc: Jeff Kirsher, netdev, gospo, sassmann, linux-pci This series contains updates to ixgbe and pci. The first patch for ixgbe from Greg Rose is the second submission. The first submission of "ixgbe: Retain VLAN filtering in promiscuous + VT mode" had a typo, which Joe Perches pointed out and is fixed in this submission. Alex updates the ixgbe driver to use the generic helper pci_vfs_assigned instead of the driver specific function ixgbe_vfs_are_assigned. Don Skidmore provides 4 patches for ixgbe, the first being a fix for flow control ethtool reporting. Originally ixgbe_device_supports_autoneg_fc() was expected to be called by only copper devices, which lead to false information being displayed via ethtool. Two other patches add support for fixed fiber for SFP+ devices and the addition of a quad-port x520 adapter. The last patch simply bumps the driver version. Emil Tantilov provides 3 fixes for ixgbe, two of which resolve semaphore lock issues. The third fix resolves several issues in the previous implementation of the SFF data dumps of SFP+ modules. The remaining ixgbe and pci patches are from Jacob Keller. The pci patches exposes bus speed, link speed and bus width so that drivers can take advantage of this information. In addition, adds a pci function which obtains minimum link width and speed. Jacob also provides the ixgbe patch to incorporate the pci function. He provides a patch that fixes a lockdep issue created due to ixgbe_ptp_stop always running cancel_work_sync even if the work item had not been created properly with INIT_WORK. This issue was found and reported by Stephen Hemminger. The following are changes since commit fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c: net/mlx4_core: Respond to operation request by firmware and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Alexander Duyck (1): ixgbe: Use pci_vfs_assigned instead of ixgbe_vfs_are_assigned Don Skidmore (4): ixgbe: fix fc autoneg ethtool reporting. ixgbe: add new media type ixgbe: bump version number ixgbe: add support for quad-port x520 adapter Emil Tantilov (3): ixgbe: fix semaphore lock for I2C read/writes on 82598 ixgbe: fix SFF data dumps of SFP+ modules ixgbe: clear semaphore bits on timeouts Greg Rose (1): ixgbe: Retain VLAN filtering in promiscuous + VT mode Jacob Keller (6): pci: expose pcie_link_speed and pcix_bus_speed arrays pci: move enum pcie_link_width into pci.h pci: Add function to obtain minimum link width and speed ixgbe: call pcie_get_mimimum_link to check if device has enough bandwidth ixgbe: fix lockdep annotation issue for ptp's work item ixgbe: rename LL_EXTENDED_STATS to use queue instead of q drivers/net/ethernet/intel/ixgbe/ixgbe.h | 7 +- drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 34 +- drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 231 ++++++++++- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 88 +++-- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 94 ++--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 158 +++++++- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 470 ++++++++++++++++------- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 41 +- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 12 +- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 101 +++-- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 12 + drivers/pci/pci.c | 43 +++ drivers/pci/probe.c | 4 +- include/linux/pci.h | 18 + include/linux/pci_hotplug.h | 13 - 15 files changed, 983 insertions(+), 343 deletions(-) -- 1.7.11.7 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-08-21 8:23 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2013-08-21 8:23 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to igb and e1000e. Akeem provides 3 igb patches, the first resets the link when EEE is enabled or disabled if the link is up. His second patch changes a register read which normally stores of the read value to "just-read" so that hardware can accurately latch the register read. Lastly, he adds rcu_lock to avoid a possible race condition with igb_update_stats function. Mitch provides a fix for SR-IOV, where MSI-X interrupts are required, so make sure that MSI-X is enabled before allowing the user to turn on SR-IOV. Alex's igb patch make it so that we limit the lower bound for max_frame_size to the size of a standard Ethernet frame. This allows for feature parity with other Intel based drivers such as ixgbe. Carolyn adds a SKU for a flashless i210 device and a fix for get_fw_version() so that it works for all parts for igb. In addition, she has 2 igb patches to refactor NVM code to accommodate devices with no flash. Lastly, she adds code to check for the failure of pci_disable_link_state() to attempt to work around a problem found with some systems. Laura provides the remaining 2 igb patches. One removing the hard-coded value for the size of the RETA indirection table, and creates a macro instead for the RETA indirection table. The second adds the ethtool callbacks necessary to change the RETA indirection table from userspace. Bruce fixes a whitespace issue in a recent commit and resolves a jiffies comparison warning by using time_after(). Li provides a fix for e1000e to avoid a kernel crash on shutdown by adding one more check in e1000e_shutdown(). This is due to e1000e_shutdown() trying to clear correctable errors on the upstream P2P bridge, when under some cases we do not have the upstream P2P bridge. The following are changes since commit 84ce22df92f5cf9ecb76d53f4bf5f6d504684540: net: davinci_mdio: use platform_{get,set}_drvdata() and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Akeem G Abodunrin (3): igb: Reset the link when EEE setting changed igb: Read register for latch_on without return value igb: Added rcu_lock to avoid race Alexander Duyck (1): igb: Update MTU so that it is always at least a standard frame size Bruce Allan (2): e1000e: cleanup whitespace in recent commit e1000e: resolve checkpatch JIFFIES_COMPARISON warning Carolyn Wyborny (5): igb: Refactor of init_nvm_params igb: Refactor NVM read functions to accommodate devices with no flash igb: Add device support for flashless SKU of i210 device igb: Fix get_fw_version function for all parts e1000e: Add code to check for failure of pci_disable_link_state call Laura Mihaela Vasilescu (2): igb: Add macro for size of RETA indirection table igb: Expose RSS indirection table for ethtool Li Zhang (1): e1000e: Avoid kernel crash during shutdown Mitch A Williams (1): igb: don't allow SR-IOV without MSI-X drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +- drivers/net/ethernet/intel/e1000e/hw.h | 3 +- drivers/net/ethernet/intel/e1000e/netdev.c | 92 ++++++++++----- drivers/net/ethernet/intel/igb/e1000_82575.c | 117 ++++++++----------- drivers/net/ethernet/intel/igb/e1000_defines.h | 34 ++++-- drivers/net/ethernet/intel/igb/e1000_hw.h | 3 + drivers/net/ethernet/intel/igb/e1000_i210.c | 155 ++++++++++++++++--------- drivers/net/ethernet/intel/igb/e1000_i210.h | 5 +- drivers/net/ethernet/intel/igb/e1000_nvm.c | 80 +++++++++---- drivers/net/ethernet/intel/igb/e1000_nvm.h | 1 + drivers/net/ethernet/intel/igb/igb.h | 5 + drivers/net/ethernet/intel/igb/igb_ethtool.c | 106 ++++++++++++++++- drivers/net/ethernet/intel/igb/igb_main.c | 105 ++++++++++------- drivers/net/ethernet/intel/igb/igb_ptp.c | 8 +- 14 files changed, 476 insertions(+), 240 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-12-06 8:06 Jeff Kirsher 2013-12-06 19:49 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2013-12-06 8:06 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Christopher Pau provides a patch to set pf_id based on device and function numbers since NICs with ARI enabled can have function numbers larger than 8. Anjali provides 3 i40e patches to update hardware defines to keep in sync with hardware updates. Shannon provides the majority of i40e patches, with 7. First patch clears the admin queue head and tail registers during admin queue shutdown. Then simplifies the admin queue head-tail-len setups to use more virtual registers. Provides several patches to cleanup and fix driver load and reset procedures to make more robust. Lastly, provides an ethtool test for interrupts using the software interrupt. Mitch provides some i40e patches which fixes up VF code in the PF driver, specifically the number of vectors per VF are reported by the hardware does not include vector 0, so we need to account for this when checking. In addition, cleans up debugging messages. Kamil provides an i40e patch to fix the diagnostics test by restricting the diagnostic test length. The following are changes since commit d70f2cf520cf8c86c6b467fc5dcea524ec51dc2f: macvlan: Support creating macvtaps from macvlans and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (3): i40e: sync header files with hardware i40e: register file updates i40e: firmware version fields offsets update Christopher Pau (1): i40e: set pf_id based on device and function numbers Kamil Krawczyk (1): i40e: restrict diag test length Mitch Williams (3): i40e: allow one more vector for VFs i40e: properly add VF MAC addresses i40e: fix debugging messages Shannon Nelson (7): i40e: clear AQ head and tail registers i40e: simplify aq head-tail-len setups i40e: select reset counters correctly i40e: retry call on timeout i40e: default debug mask setting i40e: add interrupt test i40e: add support for triggering EMPR drivers/net/ethernet/intel/i40e/i40e.h | 19 +-- drivers/net/ethernet/intel/i40e/i40e_adminq.c | 66 +++++----- drivers/net/ethernet/intel/i40e/i40e_adminq.h | 1 + drivers/net/ethernet/intel/i40e/i40e_common.c | 6 +- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 + drivers/net/ethernet/intel/i40e/i40e_diag.c | 8 +- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 10 +- drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h | 4 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 37 +++++- drivers/net/ethernet/intel/i40e/i40e_register.h | 134 +++++++-------------- drivers/net/ethernet/intel/i40e/i40e_type.h | 11 +- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 8 +- 12 files changed, 155 insertions(+), 153 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2013-12-06 8:06 Jeff Kirsher @ 2013-12-06 19:49 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2013-12-06 19:49 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Fri, 6 Dec 2013 00:06:13 -0800 > This series contains updates to i40e only. > > Christopher Pau provides a patch to set pf_id based on device and > function numbers since NICs with ARI enabled can have function > numbers larger than 8. > > Anjali provides 3 i40e patches to update hardware defines to keep > in sync with hardware updates. > > Shannon provides the majority of i40e patches, with 7. First patch > clears the admin queue head and tail registers during admin queue > shutdown. Then simplifies the admin queue head-tail-len setups to > use more virtual registers. Provides several patches to cleanup > and fix driver load and reset procedures to make more robust. Lastly, > provides an ethtool test for interrupts using the software interrupt. > > Mitch provides some i40e patches which fixes up VF code in the PF > driver, specifically the number of vectors per VF are reported by the > hardware does not include vector 0, so we need to account for this > when checking. In addition, cleans up debugging messages. > > Kamil provides an i40e patch to fix the diagnostics test by restricting > the diagnostic test length. Pulled, thanks a lot Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-12-12 12:40 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only (again). Jesse provides a fix for when tx_rings structure is NULL and we do not want to panic. Then refactors the flow control set up and disables L2 flow control by default. Provides some trivial fixes as well as prevent compiler warnings. Then to align to similar behaviour in ixgbe, use the total number of CPUs in the system to suggest the number of transmit and receive queue pairs. Shannon provides a i40e ethtool fix to get some more reasonable information reports back out to the ethtool. In addition, fixes PF reset after offline test, where it reorders the test to put the register test last as it is the only one that needs a reset, and we wait to trigger the reset until after we clear the testing bit. Lastly provides basic support for handling suspend and resume for now, later on Wake-On-LAN support will be added. Elizabeth Kappler adds netdev ops helper function. Anjali provides changes to tell the stack about our actual number of queues in order for RFS/RPS/XFS to work correctly. Then provides several patches to implement dynamically changing the queue count for the main VSI. Adds basic support for get/set channels for RSS so that the number of receive and transmit queue pair can be changed via ethtool. Cleans up the use of rtnl_lock in the reset patch since it runs from a work time. Neerav Parikh cleans up the VF interface to remove FCoE code as this feature will not be supported on VF interfaces. The following are changes since commit c45f812f0280c13f1b7992be5e0de512312a9e8f: 8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (6): i40e: Tell the stack about our actual number of queues i40e: reinit flow for the main VSI i40e: function to reconfigure RSS queues and rebuild i40e: debugfs command to change RSS queue count i40e: Add basic support for get/set channels for RSS i40e: rtnl_lock in reset path fixes Elizabeth Kappler (1): i40e: add netdev ops helper function Jesse Brandeburg (5): i40e: fix null dereference i40e: fix up some of the ethtool connection reporting i40e: init flow control settings to disabled i40e: trivial fixes i40e: use same number of queues as CPUs Neerav Parikh (1): i40e: Remove FCoE in i40e_virtchnl_pf.c code Shannon Nelson (2): i40e: fix pf reset after offline test i40e: support for suspend and resume drivers/net/ethernet/intel/i40e/i40e.h | 6 +- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 22 +- drivers/net/ethernet/intel/i40e/i40e_diag.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 146 +++++++- drivers/net/ethernet/intel/i40e/i40e_hmc.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 380 ++++++++++++++++++--- drivers/net/ethernet/intel/i40e/i40e_type.h | 4 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 29 +- 8 files changed, 499 insertions(+), 92 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2013-12-19 6:34 Jeff Kirsher 2013-12-19 19:20 ` Jeff Kirsher 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2013-12-19 6:34 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Anjali provides a patch to prevent messages from stray HMC events, except at interrupt message level, and refactors the HMC error handling. Catherine adds routines in probe to populate/check PCI bus speed and width, then verify we are in a 8GT/s x8 PCIe slot and warn when we are not. Shannon adds Wake-on-LAN support for i40e, fixes curly brace use as well as return type for i40e_vsi_clear_rings(). Lastly implements the set_settings and set_pauseparam ethtool functionality. Joseph implements receive offload for VXLAN for i40e, where the hardware supports checksum offload/verification of the inner/outer header. Mitch provides the bulk of the changes, where he refactors the VF reset code so that it works on real hardware. Then does code cleanup by calling existing functions to enable and disable queues for VFs and remove unused functions. Removes a unnecessary log messages that are seen at every VF reset, for example complaining about disabling queues that are already disabled. Fixes an error return when the VF asks to add an invalid MAC address and if the VF sends a bad message, make it more informative about what is actually going on. Jesse refactors the LED function to flash LED lights correctly. The following are changes since commit 020e867c755610fa5a2a08a69707e636cf368b55: isdn: use strlcpy() instead strcpy() and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (1): i40e: Suppress HMC error to Interrupt message level Catherine Sullivan (1): i40e: Populate and check pci bus speed and width Jesse Brandeburg (1): i40e: update led set args Joseph Gasparakis (1): i40e: Rx checksum offload for VXLAN Mitch Williams (8): i40e: move i40e_reset_vf i40e: refactor VF reset flow i40e: remove redundant code i40e: remove chatty log messages i40e: fix error return i40e: be more informative i40e: make a define from a large constant i40e: report VF MAC addresses correctly Shannon Nelson (3): i40e: add wake-on-lan support i40e: fix curly brace use and return type i40e: add set settings and pauseparam drivers/net/ethernet/intel/i40e/i40e.h | 3 + drivers/net/ethernet/intel/i40e/i40e_common.c | 136 ++++- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 145 +++++- drivers/net/ethernet/intel/i40e/i40e_main.c | 105 ++-- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 3 +- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 56 ++- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 20 + drivers/net/ethernet/intel/i40e/i40e_type.h | 61 ++- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 559 ++++++--------------- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 2 +- 10 files changed, 572 insertions(+), 518 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2013-12-19 6:34 Jeff Kirsher @ 2013-12-19 19:20 ` Jeff Kirsher 2013-12-19 19:47 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2013-12-19 19:20 UTC (permalink / raw) To: davem; +Cc: netdev, gospo, sassmann [-- Attachment #1: Type: text/plain, Size: 1897 bytes --] On Wed, 2013-12-18 at 22:34 -0800, Jeff Kirsher wrote: > This series contains updates to i40e only. > > Anjali provides a patch to prevent messages from stray HMC events, > except > at interrupt message level, and refactors the HMC error handling. > > Catherine adds routines in probe to populate/check PCI bus speed and > width, > then verify we are in a 8GT/s x8 PCIe slot and warn when we are not. > > Shannon adds Wake-on-LAN support for i40e, fixes curly brace use as > well as > return type for i40e_vsi_clear_rings(). Lastly implements the > set_settings > and set_pauseparam ethtool functionality. > > Joseph implements receive offload for VXLAN for i40e, where the > hardware > supports checksum offload/verification of the inner/outer header. > > Mitch provides the bulk of the changes, where he refactors the VF > reset > code so that it works on real hardware. Then does code cleanup by > calling existing functions to enable and disable queues for VFs and > remove unused functions. Removes a unnecessary log messages that are > seen at every VF reset, for example complaining about disabling queues > that are already disabled. Fixes an error return when the VF asks to > add an invalid MAC address and if the VF sends a bad message, make it > more informative about what is actually going on. > > Jesse refactors the LED function to flash LED lights correctly. > > The following are changes since commit > 020e867c755610fa5a2a08a69707e636cf368b55: > isdn: use strlcpy() instead strcpy() > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next > master Dave- Disregard this pull request. I overlooked a patch that needs to either precede this series or get added to the series for VXLAN. I will be sending out a v2 with the necessary patch added. Cheers, Jeff [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2013-12-19 19:20 ` Jeff Kirsher @ 2013-12-19 19:47 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2013-12-19 19:47 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 19 Dec 2013 11:20:36 -0800 > Disregard this pull request. I overlooked a patch that needs to either > precede this series or get added to the series for VXLAN. > > I will be sending out a v2 with the necessary patch added. Ok. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-01-05 10:46 Jeff Kirsher 2014-01-06 1:31 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-01-05 10:46 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Anjali provides two cleanups to remove unnecessary code and a fix to resolve debugfs dumping only half the NVM. Then provides a fix to ethtool NVM reads where shadow RAM was used instead of actual NVM reads. Jesse provides a couple of fixes, one removes custom i40e functions which duplicate existing kernel functionality. Second fixes constant cast issues by replacing __constant_htons with htons. Mitch provides a couple of fixes for the VF interfaces in i40e. First provides a fix to guard against VF message races with can cause a panic. Second fix reinitializes the buffer size each time we clean the ARQ, because subsequent messages can be truncated. Lastly adds functionality to enable/disable ICR 0 dynamically. Vasu adds a simple guard against multiple includes of the i40e_txrx.h file. Shannon provides a couple of fixes, first fix swaps a couple of lines around in the error handling if the allocation for the VSI array fails. Second fixes an issue where we try to free the q_vector that has not been setup which can panic the kernel. David provides a patch to save off the point to memory and the length of 2 structs used in the admin queue in order to store all info about allocated kernel memory. Neerav fixes ring allocation where allocation and clearing of rings for a VSI should be using the alloc_queue_pairs and not num_queue_pairs. Then removes the unused define for multi-queue enabled. The following are changes since commit a1d4b03a076d95edc88d070f7627a73ab80abddc: Merge branch 'bgmac' and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (4): i40e: Dump the whole NVM, not half i40e: Change the ethtool NVM read method to use AQ i40e: Remove unnecessary prototypes i40e: remove un-necessary io-write David Cassard (1): i40e: keep allocated memory in structs Jesse Brandeburg (2): i40e: fix mac address checking i40e: fix constant cast issues Mitch Williams (3): i40e: guard against vf message races i40e: use functions to enable and disable icr 0 i40e: reinit buffer size each time Neerav Parikh (2): i40e: Fix ring allocation i40e: I40E_FLAG_MQ_ENABLED is not used Shannon Nelson (2): i40e: fix error handling when alloc of vsi array fails i40e: catch unset q_vector Vasu Dev (1): i40e: add header file flag _I40E_TXRX_H_ drivers/net/ethernet/intel/i40e/i40e.h | 40 +++----- drivers/net/ethernet/intel/i40e/i40e_adminq.c | 103 +++++++++------------ drivers/net/ethernet/intel/i40e/i40e_adminq.h | 13 +-- drivers/net/ethernet/intel/i40e/i40e_common.c | 27 ------ drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 8 +- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 68 +++++++++----- drivers/net/ethernet/intel/i40e/i40e_main.c | 47 +++++----- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 1 - drivers/net/ethernet/intel/i40e/i40e_txrx.c | 8 +- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 4 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 28 +++--- 11 files changed, 162 insertions(+), 185 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-01-05 10:46 Jeff Kirsher @ 2014-01-06 1:31 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-01-06 1:31 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Sun, 5 Jan 2014 02:46:52 -0800 > This series contains updates to i40e only. ... > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Looks fine, pulled, thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-01-06 12:30 Jeff Kirsher 2014-01-06 18:26 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-01-06 12:30 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Majority of this series contains patches from Greg and Mitch to fix up or add functionality to the PF/VF driver interactions. Notably, a fix for SR-IOV VF port VLAN which resolved the problem of port VLAN configurations not being persistent across VF driver loads and unloads and enable/disable of the feature. Also do not enable the default port on the VEB, which is designed only to bridge the PF to an Open vSwitch or bridge. Another fix to resolve a possible memory corruption condition where ARQ messages are written to random memory locations. Fix a problem where the 'ip link show' command would display stale link address information after the link address was set via the 'ip link set' command. Anjali provides several patches, one which saves information that can be used while cleaning the Tx ring and useful in detecting Tx hangs. Then provides a fixes to the admin queue shutdown function to ensure we are shutting down the queue in the shutdown path and ensure ASQ is alive before issuing the admin queue command. Shannon provides a fix for get/update vsi params where the incorrect struct was being used. The following are changes since commit b912b2f8fc71df4c3ffa7a9fe2c2227e8bcdaa07: net/mlx4_core: Warn if device doesn't have enough PCI bandwidth and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (4): i40e: Record dma buffer info for dummy packets i40e: Admin queue shutdown fixes i40e: check asq alive before notify i40e: Do not allow AQ calls from ndo-ops Greg Rose (4): i40e: Fix SR-IOV VF port VLAN i40e: Do not enable default port on the VEB i40e: Fix VF driver MAC address configuration i40e: Hide the Port VLAN VLAN ID Jesse Brandeburg (1): i40e: fix whitespace Mitch Williams (5): i40e: avoid unnecessary register read i40e: use struct assign instead of memcpy i40e: don't allocate zero size i40e: acknowledge VFLR when disabling SR-IOV i40e: support VFs on PFs other than 0 Shannon Nelson (1): i40e: use correct struct for get and update vsi params drivers/net/ethernet/intel/i40e/i40e_adminq.c | 3 + drivers/net/ethernet/intel/i40e/i40e_common.c | 75 ++++++++------ drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 45 ++++---- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 5 +- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 9 +- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 114 ++++++++++++++++----- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 2 + 8 files changed, 169 insertions(+), 85 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-01-06 12:30 Jeff Kirsher @ 2014-01-06 18:26 ` David Miller 2014-01-06 18:49 ` Jeff Kirsher 2014-01-06 20:14 ` Jeff Kirsher 0 siblings, 2 replies; 54+ messages in thread From: David Miller @ 2014-01-06 18:26 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Mon, 6 Jan 2014 04:30:21 -0800 > This series contains updates to i40e only. ... > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, please make sure the coding style feedback does actually get addressed. Thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-01-06 18:26 ` David Miller @ 2014-01-06 18:49 ` Jeff Kirsher 2014-01-06 20:14 ` Jeff Kirsher 1 sibling, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2014-01-06 18:49 UTC (permalink / raw) To: David Miller; +Cc: netdev, gospo, sassmann [-- Attachment #1: Type: text/plain, Size: 459 bytes --] On Mon, 2014-01-06 at 13:26 -0500, David Miller wrote: > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Date: Mon, 6 Jan 2014 04:30:21 -0800 > > > This series contains updates to i40e only. > ... > > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master > > Pulled, please make sure the coding style feedback does actually > get addressed. > > Thanks Jeff. Yes, I will make sure it is in one of the upcoming series. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-01-06 18:26 ` David Miller 2014-01-06 18:49 ` Jeff Kirsher @ 2014-01-06 20:14 ` Jeff Kirsher 1 sibling, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2014-01-06 20:14 UTC (permalink / raw) To: David Miller, Sergei Shtylyov; +Cc: netdev, gospo, sassmann [-- Attachment #1: Type: text/plain, Size: 500 bytes --] On Mon, 2014-01-06 at 13:26 -0500, David Miller wrote: > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Date: Mon, 6 Jan 2014 04:30:21 -0800 > > > This series contains updates to i40e only. > ... > > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master > > Pulled, please make sure the coding style feedback does actually > get addressed. > > Thanks Jeff. Just to be clear, this coding style will be fixed in patch 13 of the next series I am sending out. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-01-07 9:32 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2014-01-07 9:32 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Anjali adds more functionality to debugfs to assist development and testing of admin queue commands. Greg makes sure broadcast promiscuous is disabled by default, otherwise VLAN tagged packets out of the assigned VLAN domain are received. Also provides a fix when the 8021q driver is loaded, so that VLAN 0 tagged packets are accepted so that upper layers can interpret the priority bits. Then provides a fix to let the VF to request the PF to set its already assigned MAC address without generating an error. Greg also adds helper functions to enable or disable internal switch loopback when VFs are created or destroyed via the sysfs interface. Shannon provides most of the changes, where he adds code to ensure that the hardware waits to make sure that the firmware is ready as well after reset. Also updates the code to use the new features in the firmware. Provides a fix while in MFP mode where resources are reduced, so use a smaller range of test registers than when in SFP mode. Moves the PF ID initialization code to earlier in the driver initialization function since a few operations need the information before the first PF reset is called. Shannon adds a check for MAC type before reading anything from the registers to ensure we dealing with the correct MAC type. Then reworks Shadow RAM read word/buffer functions as to not block whole NVM resources for SR read operations. Mitch lastly provides a fix to correctly setup ARQ descriptors in the cleanup code. Catherine bumps the driver version due to all the recent changes. The following are changes since commit 83111e7fe85f2dc8b61e463c71b971f4998d8e53: netfilter: Fix build failure in nfnetlink_queue_core.c. and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (1): i40e: Expose AQ debugfs hooks Catherine Sullivan (1): i40e: Bump version Greg Rose (4): i40e: Do not enable broadcast promiscuous by default i40e: Stop accepting any VLAN tag on VLAN 0 filter set i40e: Allow VF to set already assigned MAC address i40e: Enable/Disable PF switch LB on SR-IOV configure changes Kamil Krawczyk (1): i40e: remove redundant AQ enable Mitch Williams (1): i40e: correctly setup ARQ descriptors Shannon Nelson (7): i40e: Add code to wait for FW to complete in reset path i40e: update firmware api to 1.1 i40e: Reduce range of interrupt reg in reg test i40e: move PF ID init from PF reset to SC init i40e: check MAC type before any REG access i40e: rework shadow ram read functions i40e: whitespace paren and comment tweaks drivers/net/ethernet/intel/i40e/i40e_adminq.c | 27 ++--- drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 126 +++++++++++++++------ drivers/net/ethernet/intel/i40e/i40e_common.c | 51 ++++++--- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 112 ++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_diag.c | 6 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 29 ++--- drivers/net/ethernet/intel/i40e/i40e_nvm.c | 67 +++-------- drivers/net/ethernet/intel/i40e/i40e_register.h | 22 ++++ drivers/net/ethernet/intel/i40e/i40e_type.h | 11 +- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 100 +++++++++++++--- 10 files changed, 395 insertions(+), 156 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-01-09 12:52 Jeff Kirsher 2014-01-09 20:13 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-01-09 12:52 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e only. Anjali provides a fix where interrupts were not being re-enabled on ICR0 even though they were auto masked by hardware. Then provides a fix to cleanup RSS initialization because it was doing some extra work, so remove the extra work and any bugs it created when managing number of queues. Since hardware requires a full packet template to be pointed to when adding hardware flow filters, add the template and use it for programming filters. Jesse provides a fix to replace the use of driver specific defines with kernel ETH_ALEN defines. Then disables packet split because with the use of GRO, we do not need the extra bus overhead. Fixes spelling error in code comment. Kamil provides a fix for the driver where the hardware expects the MAC address in a very specific format and the driver was filing the data incorrectly. Mitch provides a fix to resolve a panic on reset by adding checks to VSI->rx_rings. Then shortens alloc_rx_buff_failed and alloc_rx_page_failed variables since both part of an RX specific structure so just remove the _rx part of the name. Then fixes badly formatted lines, long lines and mis-formatted lines. Shannon provides a fix to call AQ to release any reservation held by this PF on the NVM resource lock on startup, in order to clear anything that might have been left over from a previous run. Then removes interrupt on AQ error since nearly everything we do is synchronous, using the interrupt-on-error bit is unnecessary and causing unneeded interrupts. Adds code to handle the ability to send messages among the physical function interfaces by the admin queue. Catherine sets the MFP flag earlier in software init and uses that flag to decide if other hardware work-arounds are required which turns off flow director in MFP mode. The following are changes since commit 54b553e2c16001d13e0186cad2531764065f9a1b: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (2): i40e: Re-enable interrupt on ICR0 i40e: Cleanup reconfig rss path Catherine Sullivan (1): i40e: Turn flow director off in MFP mode Greg Rose (2): i40e: Fix GPL header i40e: add a comment on barrier and fix panic on reset Jesse Brandeburg (4): i40e: use kernel specific defines i40e: disable packet split i40e: fix spelling errors i40e: Add a dummy packet template Kamil Krawczyk (1): i40e: Fix MAC format in Write MAC address AQ cmd Mitch Williams (2): i40e: shorten wordy fields i40e: trivial: formatting and checkpatch fixes Shannon Nelson (3): i40e: release NVM resource reservation on startup i40e: remove interrupt on AQ error i40e: accept pf to pf adminq messages drivers/net/ethernet/intel/i40e/Makefile | 7 +-- drivers/net/ethernet/intel/i40e/i40e.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_adminq.c | 12 ++-- drivers/net/ethernet/intel/i40e/i40e_adminq.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_alloc.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_common.c | 14 +++-- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 13 ++--- drivers/net/ethernet/intel/i40e/i40e_diag.c | 7 +-- drivers/net/ethernet/intel/i40e/i40e_diag.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 33 ++++++++--- drivers/net/ethernet/intel/i40e/i40e_hmc.c | 7 +-- drivers/net/ethernet/intel/i40e/i40e_hmc.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c | 7 +-- drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_main.c | 68 +++++++++++----------- drivers/net/ethernet/intel/i40e/i40e_nvm.c | 7 +-- drivers/net/ethernet/intel/i40e/i40e_osdep.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_register.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_status.h | 7 +-- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 44 +++++++------- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 11 ++-- drivers/net/ethernet/intel/i40e/i40e_type.h | 15 ++--- drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 11 ++-- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 10 ++-- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 7 +-- 27 files changed, 176 insertions(+), 174 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-01-09 12:52 Jeff Kirsher @ 2014-01-09 20:13 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-01-09 20:13 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 9 Jan 2014 04:52:09 -0800 > This series contains updates to i40e only. ... > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-03-08 9:25 Jeff Kirsher 2014-03-08 23:50 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-03-08 9:25 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to e1000e, ixgbevf and igb. Majority of this series contains fixes and cleanups to e1000e, most notably are: Todd provides a fix to PTP in e1000e which adds a lock in e1000e_phc_adjfreq to prevent concurrent changes to TIMINCA and SYSTIMH/L. Then provides an igb fix to use ARRAY_SIZE for array size calculation. David provides the remaining e1000e which contain: - cleanup of pointer references that are no longer used - fix an issue on systems with Management Engine enabled with the ethernet cable unplugged - fix an issue on 82579 where enabling EEE LPI sooner than one second after link up causes link issues on some switches - refactor the power management flows to prevent the suspend path from being executed twice when hibernating - refactor the runtime power management to fix interfering with the functionality of Energy Efficient Ethernet when enabled and to fix the device from repeatedly flip between suspend and resume with the interface administratively downed - enable the feature PHY Ultra Low Power Mode which is a power saving feature that reduces the power consumption of the PHY when a cable is not connected - fix the ethtool offline tests for 82579 parts - fix SHRA register access for 82579 parts which was introduced by previous commit c3a0dce35af0 "e1000e: fix overrun of PHY RAR array" Florian provides a fix for ixgbevf where skb->pkt_type was being checked like a bitmask, but it is not a bitmask. Fix an issue reported by Stephen Hemminger where there was a warning about code defined but never used if IGB_HWMON is not defined. The following are changes since commit 37147652cfaa20a87ead9bb04aec1834b40c5c97: 6lowpan: reassembly: fix return of init function and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master David Ertman (11): e1000e: Cleanup unecessary references e1000e: Resolve issues with Management Engine (ME) briefly blocking PHY resets e1000e: Fix 82579 sets LPI too early. e1000e: Cleanup - Update GPL header and Copyright e1000e: Add missing branding strings in ich8lan.c e1000e: Refactor PM flows e1000e Refactor of Runtime Power Management e1000e: Feature Enable PHY Ultra Low Power Mode (ULP) e1000e: Fix not generating an error on invalid load parameter e1000e: Fix ethtool offline tests for 82579 parts e1000e: Fix SHRA register access for 82579 Florian Fainelli (1): ixgbevf: fix skb->pkt_type checks Jeff Kirsher (1): igb: fix warning if !CONFIG_IGB_HWMON Todd Fujinaka (2): e1000e: PTP lock in e1000e_phc_adjustfreq igb: fix array size calculation drivers/net/ethernet/intel/e1000e/80003es2lan.c | 47 +-- drivers/net/ethernet/intel/e1000e/80003es2lan.h | 47 +-- drivers/net/ethernet/intel/e1000e/82571.c | 47 +-- drivers/net/ethernet/intel/e1000e/82571.h | 47 +-- drivers/net/ethernet/intel/e1000e/Makefile | 7 +- drivers/net/ethernet/intel/e1000e/defines.h | 55 ++- drivers/net/ethernet/intel/e1000e/e1000.h | 50 ++- drivers/net/ethernet/intel/e1000e/ethtool.c | 63 ++-- drivers/net/ethernet/intel/e1000e/hw.h | 55 +-- drivers/net/ethernet/intel/e1000e/ich8lan.c | 427 ++++++++++++++++++---- drivers/net/ethernet/intel/e1000e/ich8lan.h | 72 ++-- drivers/net/ethernet/intel/e1000e/mac.c | 47 +-- drivers/net/ethernet/intel/e1000e/mac.h | 47 +-- drivers/net/ethernet/intel/e1000e/manage.c | 47 +-- drivers/net/ethernet/intel/e1000e/manage.h | 47 +-- drivers/net/ethernet/intel/e1000e/netdev.c | 286 +++++++++------ drivers/net/ethernet/intel/e1000e/nvm.c | 47 +-- drivers/net/ethernet/intel/e1000e/nvm.h | 47 +-- drivers/net/ethernet/intel/e1000e/param.c | 53 ++- drivers/net/ethernet/intel/e1000e/phy.c | 47 +-- drivers/net/ethernet/intel/e1000e/phy.h | 47 +-- drivers/net/ethernet/intel/e1000e/ptp.c | 52 ++- drivers/net/ethernet/intel/e1000e/regs.h | 48 ++- drivers/net/ethernet/intel/igb/e1000_82575.c | 6 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 3 +- 25 files changed, 1003 insertions(+), 738 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-03-08 9:25 Jeff Kirsher @ 2014-03-08 23:50 ` David Miller 2014-03-09 0:10 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: David Miller @ 2014-03-08 23:50 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Sat, 8 Mar 2014 01:25:26 -0800 > This series contains updates to e1000e, ixgbevf and igb. ... > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks a lot Jeff, and again welcome back. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-03-08 23:50 ` David Miller @ 2014-03-09 0:10 ` David Miller 2014-03-09 1:12 ` Jeff Kirsher 0 siblings, 1 reply; 54+ messages in thread From: David Miller @ 2014-03-09 0:10 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: David Miller <davem@davemloft.net> Date: Sat, 08 Mar 2014 18:50:08 -0500 (EST) > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Date: Sat, 8 Mar 2014 01:25:26 -0800 > >> This series contains updates to e1000e, ixgbevf and igb. > ... >> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master > > Pulled, thanks a lot Jeff, and again welcome back. Jeff, please get this new warning fixed, thanks: drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function ‘i40e_del_fdir_entry’: drivers/net/ethernet/intel/i40e/i40e_ethtool.c:1441:18: warning: unused variable ‘pf’ [-Wunused-variable] struct i40e_pf *pf = vsi->back; ^ ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-03-09 0:10 ` David Miller @ 2014-03-09 1:12 ` Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2014-03-09 1:12 UTC (permalink / raw) To: David Miller; +Cc: netdev, gospo, sassmann [-- Attachment #1: Type: text/plain, Size: 913 bytes --] On Sat, 2014-03-08 at 19:10 -0500, David Miller wrote: > From: David Miller <davem@davemloft.net> > Date: Sat, 08 Mar 2014 18:50:08 -0500 (EST) > > > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > > Date: Sat, 8 Mar 2014 01:25:26 -0800 > > > >> This series contains updates to e1000e, ixgbevf and igb. > > ... > >> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next > master > > > > Pulled, thanks a lot Jeff, and again welcome back. > > Jeff, please get this new warning fixed, thanks: > > drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function > ‘i40e_del_fdir_entry’: > drivers/net/ethernet/intel/i40e/i40e_ethtool.c:1441:18: warning: > unused variable ‘pf’ [-Wunused-variable] > struct i40e_pf *pf = vsi->back; Yeah, I noticed that as well. I have a patch in my queue already to resolve that, should be in my next pull request. Thanks Dave! [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-03-20 8:32 Jeff Kirsher 2014-03-20 18:20 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-03-20 8:32 UTC (permalink / raw) To: davem Cc: Jeff Kirsher, netdev, gospo, sassmann, emil.s.tantilov, asharma, donald.c.skidmore This series contains updates to e100, igb, igbvf, ixgbe and ixgbevf. Stefan adds a igb patch to enable the ability strip VLAN header information for packets bound for a VM on i350 hardware. Joe Perches provides patches for e100, igb, igbvf, ixgbe and ixgbevf to convert the use of __constant_<foo> to just <foo> to align with the rest of the kernel. Don provides two fixes for ixgbe, first resolves a link issue with DA cables where we were not always freeing the firmware/software semaphore after grabbing it. Second stops caching whether the management firmware was enabled, however since this is not static, we really need to verify with each check. Jacob provides six fixes/cleanups for ixgbe, most notably, correct the stop_mac_link_on d3() to check the Core Clock Disable bit before stopping link and to fully check to see if manage firmware is running or could be enabled before bringing down the link. Fix flow control auto-negation for KR/KX/K4 interfaces, since setting up MAC link, the cached autoc value and current autoc value were being incorrectly used to determine whether link reset is required. Emil provides a fix for ixgbe where there was a chance for aggressive start_ndo_zmit() callers to sneak packets between enabling the Tx queues and the link coming up. To resolve this, move the call to enable Tx queues to after the link is established. The following are changes since commit a9baf10aafe7001501189099df4b91f90739e182: qeth: Fix IP version detection for VLAN traffic and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Don Skidmore (2): ixgbe: fix errors related to protected AUTOC calls ixgbe: Stop cacheing if the MNG FW enabled Emil Tantilov (1): ixgbe: enable tx queues after link up Jacob Keller (6): ixgbe: check Core Clock Disable bit ixgbe: fix ixgbe_stop_mac_link_on_d3_82599 to check mng correctly ixgbe: fix ixgbe_setup_mac_link_82599 autoc variables ixgbe: remove unused media type ixgbe: use ixgbe_read_pci_cfg_word ixgbe: clean up ixgbe_atr_compute_perfect_hash_82599 Joe Perches (5): e100: Convert uses of __constant_<foo> to <foo> igb: Convert uses of __constant_<foo> to <foo> igbvf: Convert uses of __constant_<foo> to <foo> ixgbe: Convert uses of __constant_<foo> to <foo> ixgbevf: Convert uses of __constant_<foo> to <foo> Stefan Assmann (1): igb: enable VLAN stripping for VMs with i350 drivers/net/ethernet/intel/e100.c | 4 +- drivers/net/ethernet/intel/igb/e1000_82575.h | 4 + drivers/net/ethernet/intel/igb/e1000_regs.h | 1 + drivers/net/ethernet/intel/igb/igb_main.c | 19 ++- drivers/net/ethernet/intel/igbvf/netdev.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 1 - drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 170 +++++----------------- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 24 +-- drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 8 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 68 +++++---- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 4 - drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 - drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 4 +- 15 files changed, 113 insertions(+), 206 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-03-20 8:32 Jeff Kirsher @ 2014-03-20 18:20 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-03-20 18:20 UTC (permalink / raw) To: jeffrey.t.kirsher Cc: netdev, gospo, sassmann, emil.s.tantilov, asharma, donald.c.skidmore From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 20 Mar 2014 01:32:50 -0700 > This series contains updates to e100, igb, igbvf, ixgbe and ixgbevf. ... > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-03-26 18:03 Jeff Kirsher 0 siblings, 0 replies; 54+ messages in thread From: Jeff Kirsher @ 2014-03-26 18:03 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to e1000e, igb, i40e and i40evf Anjali provides i40e fix to remove the ATR filter on RST as well as FIN packets. Cleans up add_del_fdir() because it was used and implemented only for the add, so change the name and drop a parameter. Adds the ability to drop a flow if we wanted to and adds a flow director message level to be used for flow director specific messages. Provide a fallback debug flow for i40e if the reset fails or the firmware is unresponsive. Mitch fixes an issue on i40evf where the Tx watchdog handler was causing an oops when sending an admin queue message to request a reset because the admin queue functions use spinlocks. Greg provides a change to i40e to make the alloc and free queue vector calls orthogonal. Shannon fixes i40e to verify the eeprom checksum and firmware CRC status bits, and shutdown the driver if they fail. This change stops the processing of traffic, but does not kill the PF netdev so that the NVMUpdate process still has a chance at fixing the image. Also provides a fix to make sure the VSI has a netdev before trying to use it in the debugfs netdev_ops commands. Jakub Kicinski provides patches for e1000e and igb to fix a number issues found in the PTP code. The following are changes since commit e74dbb73271c5c3e822af3aa66c9a28bf7dbfbfd: Merge branch 'bnx2x-next' and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (6): i40e: Delete ATR filter on RST i40e: Cleanup in FDIR SB ethtool code i40e: Add functionality for FD SB to drop packets i40e/i40evf: Add an FD message level i40e: Use DEBUG_FD message level for an FD message i40e: Add a fallback debug flow for the driver Greg Rose (1): i40e: Make the alloc and free queue vector calls orthogonal Jakub Kicinski (4): e1000e: add timeout for TX HW time stamping work e1000e: remove redundant if clause from PTP work igb: never generate both software and hardware timestamps igb: fix race conditions on queuing skb for HW time stamp Jesse Brandeburg (1): i40evf: remove double space after return Mitch Williams (1): i40evf: fix oops in watchdog handler Shannon Nelson (2): i40e: eeprom integrity check on load and empr i40e: check for netdev before debugfs use drivers/net/ethernet/intel/e1000e/e1000.h | 2 + drivers/net/ethernet/intel/e1000e/ethtool.c | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 10 +- drivers/net/ethernet/intel/i40e/i40e.h | 2 + drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 120 ++++++++++++--------- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 39 ++++--- drivers/net/ethernet/intel/i40e/i40e_main.c | 72 ++++++++++--- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 14 ++- drivers/net/ethernet/intel/i40e/i40e_type.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 2 +- drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 + drivers/net/ethernet/intel/i40evf/i40evf.h | 1 + drivers/net/ethernet/intel/i40evf/i40evf_main.c | 10 +- drivers/net/ethernet/intel/igb/igb.h | 3 +- drivers/net/ethernet/intel/igb/igb_main.c | 7 +- drivers/net/ethernet/intel/igb/igb_ptp.c | 3 + 16 files changed, 186 insertions(+), 102 deletions(-) -- 1.8.3.1 ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-04-28 13:52 Jeff Kirsher 2014-04-28 18:53 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-04-28 13:52 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e and i40evf. Jacob provides a i40e patch to remove ptp_tx_work() because it conflicts with the interrupt-based handler and will cause spurious warning messages to be displayed in the kernel log. Since the hardware can properly trigger an interrupt, we do not need to poll for an available timestamp in a work queue any more. Greg provides two patches for i40e, first to retain the MAC filter list when changing a port VLAN. Second fixes an issue where the function to set the VF MAC address was not taking the port VLAN filter into account when setting/clearing/resetting the VF's host administered MAC address. Mitch provides three patches for i40evf, first adds support for getting and setting RSS hashing options, RSS LUT entries, and getting the number of device channels from ethtool. Fixes a panic that woudl occur in the VF if the PF driver failed or was removed from the host kernel. Shannon adds driver version string to the driver version command so that can be passed down through the firmware to low-level NC-SI functions. Neerav provides several patches, first redistributes queue vectors after DCB reconfiguration because the total number of queues that are configured for a VSI may change based on a change in the total number of TCs enabled as a result of a change in the DCB configuration based on DCBX. Second, allows the driver probe to continue when querying DCB config fails. Lastly, provides changes to retrieve and store missing link config information that was not being cached in the struct i40e_link_status. Kevin provides a couple of patches, first to change a int variable type to u16 to avoid a typecheck failure. Second to update a function parameters to remove an argument which is no longer used. The following are changes since commit a49eb42a341f1df8fa0f9dc4449f9dd4a3234a2f: sched, act: allow to clear all actions as well and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Anjali Singhai Jain (2): i40e: Do not enable NTUPLE feature control in MFP mode i40e: Do not expose fd-sb commands from debugfs Catherine Sullivan (1): i40e/i40evf: Bump build version Greg Rose (2): i40e: Retain MAC filters when changing port VLAN i40e: Use port VLAN in MAC/VLAN filter configuration Jacob Keller (1): i40e: remove ptp_tx_work timestamp work item Kevin Scott (2): i40e: Change variable type to avoid typecheck failure i40e: Update function formal parameters Mitch A Williams (1): i40evf: support ethtool RSS options Mitch Williams (2): i40evf: fix panic on PF driver fail i40evf: remove debugging message Neerav Parikh (3): i40e: Redistribute queue vectors after DCB reconfiguration i40e: Don't stop driver probe when querying DCB config fails i40e/i40evf: Retrieve and store missing link config information Shannon Nelson (1): i40e/i40evf: add driver version string to driver version command drivers/net/ethernet/intel/i40e/i40e.h | 2 - drivers/net/ethernet/intel/i40e/i40e_common.c | 21 +- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 6 - drivers/net/ethernet/intel/i40e/i40e_main.c | 19 +- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 4 +- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 36 --- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 - drivers/net/ethernet/intel/i40e/i40e_type.h | 4 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 +- drivers/net/ethernet/intel/i40evf/i40e_type.h | 4 + drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 316 +++++++++++++++++++++ drivers/net/ethernet/intel/i40evf/i40evf_main.c | 15 +- 12 files changed, 373 insertions(+), 68 deletions(-) -- 1.9.0 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-04-28 13:52 Jeff Kirsher @ 2014-04-28 18:53 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-04-28 18:53 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Mon, 28 Apr 2014 06:52:23 -0700 > This series contains updates to i40e and i40evf. Pulled, thanks a lot Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-05-21 12:00 Jeff Kirsher 2014-05-22 16:05 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-05-21 12:00 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e and i40evf. Shannon makes minor changes to the AdminQ interface to bring it up to date. Removes the hard coding of stats struct size in ethtool, in prep for adding data fields which are configuration dependent. Catherine removes some unused and unneeded PCI bus defines. Jesse fixes the copyright headers and finishes up the removal of the PTP Tx work functionality which allows us to rely on the Tx timesync interrupt. Mitch provides a number of fixes and cleanups for i40e/i40evf based on suggestions from Ben Hutchings. First is to use a macro parameter for ethtool stats instead of just assuming that a valid netdev variable exists. Second is not to tell ethtool that the VF can do 10GbaseT, when it really has no idea what its link speed is, so set the supported value to 0 instead. Make the ethtool_ops structure constant since it is extremely unlikely to change at runtime. Ethtool consistently reports 0 values for our ITR settings because we never actually use them, so fix this by setting the default values to the specified default values. Greg avoids a compile error by wrapping the call to i40e_alloc_vfs() in CONFIG_PCI_IOV because the function itself is wrapped in the same conditional compile block. Alexander Gordeev updates the driver to use the new pci_enable_msi_range() and pci_enable_msix_range() or pci_enable_msi_exact() and pci_enable_msix_exact(). Jean Sacren provides a fix where the wrong error code was being passed to i40e_open(). The following are changes since commit b6052af61a9e0dee236bcf4c69843126c0d28e4f: Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Alexander Gordeev (1): i40evf: Use pci_enable_msix_range() instead of pci_enable_msix() Catherine Sullivan (1): i40evf: Remove unused defines Greg Rose (1): i40e: Check PCI_IOV config to avoid compile error Jean Sacren (1): i40e: fix passing wrong error code to i40e_open() Jesse Brandeburg (2): i40evf: Fix the headers and update copyright year. i40e: remove Tx work for ptp Mitch Williams (7): i40e: add required include i40evf: Use macro param for ethtool stats i40evf: don't lie to ethtool i40evf: make ethtool_ops const i40e/i40evf: set proper default for ITR registers i40e/i40evf: control auto ITR through ethtool i40e: Don't disable SR-IOV when VFs are assigned Shannon Nelson (2): i40evf: Update AdminQ interface i40e: remove hardcode of stats struct size in ethtool drivers/net/ethernet/intel/i40e/i40e.h | 4 -- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 63 +++++++--------- drivers/net/ethernet/intel/i40e/i40e_main.c | 8 ++- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 1 - drivers/net/ethernet/intel/i40e/i40e_txrx.c | 1 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 ++- drivers/net/ethernet/intel/i40evf/Makefile | 5 +- drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 5 +- drivers/net/ethernet/intel/i40evf/i40e_adminq.h | 5 +- .../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 27 ++++--- drivers/net/ethernet/intel/i40evf/i40e_alloc.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_common.c | 5 +- drivers/net/ethernet/intel/i40evf/i40e_hmc.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_lan_hmc.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_osdep.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_register.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_status.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 3 + drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 5 +- drivers/net/ethernet/intel/i40evf/i40e_type.h | 12 +--- drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 5 +- drivers/net/ethernet/intel/i40evf/i40evf.h | 3 + drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 84 +++++++++++----------- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 40 +++++------ .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 3 + 26 files changed, 179 insertions(+), 146 deletions(-) -- 1.9.0 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-05-21 12:00 Jeff Kirsher @ 2014-05-22 16:05 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-05-22 16:05 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Wed, 21 May 2014 05:00:58 -0700 > This series contains updates to i40e and i40evf. Pulled, thanks Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-05-27 9:12 Jeff Kirsher 2014-05-28 16:42 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to e1000, e1000e, ixgbe and i40evf. Emil provides a fix for ixgbe so that non-fiber devices with MNG FW enabled are able to link at 100Mbps. Jacob provides several changes for ixgbe, most of which are PTP related. Renames ixgbe_ptp_enable() to ixgbe_ptp_feature_enable() to better reflect the functions purpose. Extracts the hardware setup logic for the PTP hardware bits from the ixgbe_ptp_set_ts_config() to enable future work for the ixgbe_ptp_reset(). Maintain the hwstamp configuration through a reset and extracts the creation of the PTP clock device from ptp_init() in order to properly handle a suspend/resume cycle and only calls it if we don't already have a ptp_clock pointer. David provides a patch to expend the e1000e driver to turn on unicast PROMISC when there is failure to write to a shared receive address register. The fix update_phy_task() for 82579 is expanded to include newer PHYs as well so that the dev_spec->eee_lp_ability has the correct value when going into SX states. Todd provides a e1000e fix an errata for 82574/82583 where it is possible bad bits are read from SYSTIMH/L so check to see that the time is incrementing at a reasonable rate and is a multiple of the time incremental value. Removes a redundant igb PHY power down register write. Andi Kleen out of lines two write functions for e1000e to save 30k text size. Tobias Klauser converts the e1000 and i40evf drivers to use the is_broadcast_ether_addr() and is_multicast_ether_addr(). The following are changes since commit 3bea8eddfebe1c61ea824dd2880d4368791edc1f: Merge branch 'net-sysfs-docs' and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Andi Kleen (1): e1000e: Out of line __ew32_prepare/__ew32 David Ertman (3): e1000e: Failure to write SHRA turns on PROMISC mode e1000e: Cleanup parenthesis around return value e1000e: Fix expand setting EEE link info to all affected parts Emil Tantilov (1): ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled Jacob Keller (6): ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config ixgbe: extract PTP clock device from ptp_init ixgbe: separate the PTP suspend and stop actions ixgbe: avoid duplicate code in suspend and stop paths Tobias Klauser (2): e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers i40evf: Use is_multicast_ether_addr helper Todd Fujinaka (2): e1000e: 82574/82583 TimeSync errata for SYSTIM read igb: remove redundant PHY power down register write drivers/net/ethernet/intel/e1000/e1000_hw.c | 4 +- drivers/net/ethernet/intel/e1000e/80003es2lan.c | 1 + drivers/net/ethernet/intel/e1000e/82571.c | 1 + drivers/net/ethernet/intel/e1000e/e1000.h | 33 +---- drivers/net/ethernet/intel/e1000e/hw.h | 3 +- drivers/net/ethernet/intel/e1000e/ich8lan.c | 61 +++++++-- drivers/net/ethernet/intel/e1000e/mac.c | 9 +- drivers/net/ethernet/intel/e1000e/mac.h | 3 +- drivers/net/ethernet/intel/e1000e/netdev.c | 69 +++++++++- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- drivers/net/ethernet/intel/igb/e1000_phy.c | 14 -- drivers/net/ethernet/intel/igb/e1000_phy.h | 1 - drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 29 +++-- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 163 ++++++++++++++++++------ 15 files changed, 277 insertions(+), 117 deletions(-) -- 1.9.3 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-05-27 9:12 Jeff Kirsher @ 2014-05-28 16:42 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-05-28 16:42 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Tue, 27 May 2014 02:12:16 -0700 > This series contains updates to e1000, e1000e, ixgbe and i40evf. Pulled, thanks a lot Jeff. ^ permalink raw reply [flat|nested] 54+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates @ 2014-05-29 15:10 Jeff Kirsher 2014-05-31 0:53 ` David Miller 0 siblings, 1 reply; 54+ messages in thread From: Jeff Kirsher @ 2014-05-29 15:10 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann This series contains updates to i40e and i40evf. Kevin updates the i40e and i40evf driver i40e_check_asq_alive() to ensure the length register offset is non-zero which indicates that the software has initialized the admin queue. Also removes PCTYPE definitions which are now reserved. Mitch enables descriptor prefetch for rings belonging to the virtual function. Also configures the VF minimum transmit rate to 50 Mbps rather than 0 which was be interpreted as no limit at all. Mitch found in order for the VF to achieve its programmed transmit rate, we need to set the max credit value to 4. Lastly fixes a Tx hang and firmware crash that happens after setting the MTU on a VF by not using the RESETTING state during reinit, this is because the RESETTING state means that a catastrophic hardware bad thing is happening and the driver needs to tiptoe around and not use the admin queue or registers. A reinit is no big deal and we can use the admin queue (and we should) so do not set the state to RESETTING during reinit to resolve the bug. Akeem changes the declaration of the transmit and receive rings inside several loops to eliminate declaring the same ring every time for the duration of the loop and declares them just once before the loop. Also fixes the driver to clear the recovery pending bit if pf_reset fails instead of falling through the setup process. Anjali makes a change based on feedback from Ben Hutchings that cmd->data needs to be reported in ETHTOOL_GRXCLSRLCNT and use a helper function to calculate the total filter count. Jesse removes storm control since the storm control features are not apart of the hardware and were mistakenly left in the code. Greg changes tx_lpi_status and rx_lpi_status from bool to u32 to avoid sparse errors. Shannon adds the clear_pxe AdminQ API call to tell the firmware that the driver is taking over from PXE. In addition, relaxes the firmware API check to allow more flexibility in handling newer NICs and NVMs in the field. Vasu ensures that FCoE is disabled for MFP modes since it is not supported by overriding the hardware FCoE capability. The following are changes since commit 6623b4194459c07859d3e3196c3994fa7be5b88e: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Akeem G Abodunrin (2): i40e: Tx/Rx rings declaration i40e: Clear recovery pending, if reset failed Anjali Singhai Jain (2): i40e: Report cmd->data in ETHTOOL_GRXCLSRLCNT instead of ETHTOOL_GRXCLSRULE i40e: Use the new i40e_get_fd_cnt_all function in other places Greg Rose (1): i40e/i40evf: Change type to u32 to avoid sparse error Jesse Brandeburg (1): i40e/i40evf: remove storm control Kevin Scott (2): i40e/i40evf: Update check for AQ aliveness i40e/i40evf: Remove reserved PCTYPE defines Mitch Williams (4): i40e: enable descriptor prefetch for VFs i40evf: don't round Tx rate down to 0 i40evf: tweak Tx rate params and de-magic-ify i40evf: don't use RESETTING state during reinit Shannon Nelson (2): i40e: add clear_pxe AdminQ request i40e: relax the firmware API version check Vasu Dev (1): i40: disable FCoE for MFP modes drivers/net/ethernet/intel/i40e/i40e.h | 9 +++++ drivers/net/ethernet/intel/i40e/i40e_adminq.c | 3 +- drivers/net/ethernet/intel/i40e/i40e_common.c | 42 +++++++++++++++++++++- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 37 +++++++------------ drivers/net/ethernet/intel/i40e/i40e_main.c | 19 +++++----- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 ++ drivers/net/ethernet/intel/i40e/i40e_register.h | 4 --- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 33 +++++++---------- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 7 +--- drivers/net/ethernet/intel/i40e/i40e_type.h | 14 +++----- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 13 +++++-- drivers/net/ethernet/intel/i40evf/i40e_common.c | 6 +++- drivers/net/ethernet/intel/i40evf/i40e_register.h | 4 --- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 7 +--- drivers/net/ethernet/intel/i40evf/i40e_type.h | 14 +++----- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 -- 16 files changed, 116 insertions(+), 100 deletions(-) -- 1.9.3 ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates 2014-05-29 15:10 Jeff Kirsher @ 2014-05-31 0:53 ` David Miller 0 siblings, 0 replies; 54+ messages in thread From: David Miller @ 2014-05-31 0:53 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 29 May 2014 08:10:01 -0700 > This series contains updates to i40e and i40evf. ... > The following are changes since commit 6623b4194459c07859d3e3196c3994fa7be5b88e: > Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks Jeff. And, as always, thanks for the detailed cover letter. ^ permalink raw reply [flat|nested] 54+ messages in thread
end of thread, other threads:[~2014-05-31 0:53 UTC | newest] Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher 2012-02-13 21:47 ` [net-next 01/15] e1000e: cleanup: use goto for common work needed by multiple exit points Jeff Kirsher 2012-02-13 21:47 ` [net-next 02/15] e1000e: cleanup: rename goto labels to be more meaningful Jeff Kirsher 2012-02-13 21:47 ` [net-next 03/15] e1000e: potentially incorrect return for e1000_cfg_kmrn_10_100_80003es2lan Jeff Kirsher 2012-02-13 21:47 ` [net-next 04/15] e1000e: potential incorrect return for e1000_setup_copper_link_80003es2lan Jeff Kirsher 2012-02-13 21:47 ` [net-next 05/15] e1000e: cleanup: remove unnecessary assignments just before returning Jeff Kirsher 2012-02-13 21:47 ` [net-next 06/15] e1000e: cleanup: always return 0 Jeff Kirsher 2012-02-13 21:47 ` [net-next 07/15] e1000e: potentially incorrect return for e1000_set_d3_lplu_state_ich8lan Jeff Kirsher 2012-02-13 21:47 ` [net-next 08/15] e1000e: cleanup: remove unreachable statement Jeff Kirsher 2012-02-13 21:47 ` [net-next 09/15] e1000e: cleanup: remove unnecessary variable ret_val Jeff Kirsher 2012-02-13 21:47 ` [net-next 10/15] e1000e: cleanup: remove unnecessary test and return Jeff Kirsher 2012-02-13 21:47 ` [net-next 11/15] e1000e: cleanup: remove unnecessary variable initializations Jeff Kirsher 2012-02-13 21:47 ` [net-next 12/15] e1000e: cleanup: minor whitespace addition (insert blank line separator) Jeff Kirsher 2012-02-13 21:47 ` [net-next 13/15] e1000e: potentially incorrect return for e1000_init_hw_ich8lan Jeff Kirsher 2012-02-13 21:47 ` [net-next 14/15] e1000e: potentially incorrect return for e1000e_setup_fiber_serdes_link Jeff Kirsher 2012-02-13 21:47 ` [net-next 15/15] e1000e: cleanup goto statements to exit points without common work Jeff Kirsher 2012-02-13 23:48 ` [net-next 00/15][pull request] Intel Wired LAN Driver updates David Miller 2013-01-11 10:23 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher 2013-03-08 10:07 Jeff Kirsher 2013-03-08 17:25 ` David Miller 2013-04-18 23:30 Jeff Kirsher 2013-04-19 18:19 ` David Miller 2013-07-29 12:51 Jeff Kirsher 2013-08-21 8:23 Jeff Kirsher 2013-12-06 8:06 Jeff Kirsher 2013-12-06 19:49 ` David Miller 2013-12-12 12:40 Jeff Kirsher 2013-12-19 6:34 Jeff Kirsher 2013-12-19 19:20 ` Jeff Kirsher 2013-12-19 19:47 ` David Miller 2014-01-05 10:46 Jeff Kirsher 2014-01-06 1:31 ` David Miller 2014-01-06 12:30 Jeff Kirsher 2014-01-06 18:26 ` David Miller 2014-01-06 18:49 ` Jeff Kirsher 2014-01-06 20:14 ` Jeff Kirsher 2014-01-07 9:32 Jeff Kirsher 2014-01-09 12:52 Jeff Kirsher 2014-01-09 20:13 ` David Miller 2014-03-08 9:25 Jeff Kirsher 2014-03-08 23:50 ` David Miller 2014-03-09 0:10 ` David Miller 2014-03-09 1:12 ` Jeff Kirsher 2014-03-20 8:32 Jeff Kirsher 2014-03-20 18:20 ` David Miller 2014-03-26 18:03 Jeff Kirsher 2014-04-28 13:52 Jeff Kirsher 2014-04-28 18:53 ` David Miller 2014-05-21 12:00 Jeff Kirsher 2014-05-22 16:05 ` David Miller 2014-05-27 9:12 Jeff Kirsher 2014-05-28 16:42 ` David Miller 2014-05-29 15:10 Jeff Kirsher 2014-05-31 0:53 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).