ixgbe: add check for VETO bit when configuring link for KR

Submitted by Nguyen, Anthony L on March 1, 2017, 7:52 p.m.

Details

Message ID 20170301195209.5993-1-anthony.l.nguyen@intel.com
State Under Review
Delegated to: Jeff Kirsher
Headers show

Commit Message

Nguyen, Anthony L March 1, 2017, 7:52 p.m.
We did not have a check in place for MMNGC.MNG_VETO when setting up link
on X550EM_X KR devices which resulted in link loss for the BMC when
loading the driver.

This patch adds a check for ixgbe_check_reset_blocked() in setup_link()
since in that case there is no PHY reset function.

Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Bowers, AndrewX March 8, 2017, 6:51 p.m.
> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Tony Nguyen
> Sent: Wednesday, March 1, 2017 11:52 AM
> To: intel-wired-lan@lists.osuosl.org
> Subject: [Intel-wired-lan] [PATCH] ixgbe: add check for VETO bit when
> configuring link for KR
> 
> We did not have a check in place for MMNGC.MNG_VETO when setting up
> link on X550EM_X KR devices which resulted in link loss for the BMC when
> loading the driver.
> 
> This patch adds a check for ixgbe_check_reset_blocked() in setup_link()
> since in that case there is no PHY reset function.
> 
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 3 +++
>  1 file changed, 3 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>

Patch hide | download patch | download mbox

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 04d6c74..2658394 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -2526,6 +2526,9 @@  static s32 ixgbe_setup_kr_x550em(struct ixgbe_hw *hw)
 	if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_2_5GB_FULL)
 		return 0;
 
+	if (ixgbe_check_reset_blocked(hw))
+		return 0;
+
 	return ixgbe_setup_kr_speed_x550em(hw, hw->phy.autoneg_advertised);
 }