| From 0fea1aeac3a63db3a40aafc4765990d0e7a9031b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 5 Mar 2022 03:54:39 -0500 |
| Subject: bnxt_en: Eliminate unintended link toggle during FW reset |
| |
| From: Michael Chan <michael.chan@broadcom.com> |
| |
| [ Upstream commit 7c492a2530c1f05441da541307c2534230dfd59b ] |
| |
| If the flow control settings have been changed, a subsequent FW reset |
| may cause the ethernet link to toggle unnecessarily. This link toggle |
| will increase the down time by a few seconds. |
| |
| The problem is caused by bnxt_update_phy_setting() detecting a false |
| mismatch in the flow control settings between the stored software |
| settings and the current FW settings after the FW reset. This mismatch |
| is caused by the AUTONEG bit added to link_info->req_flow_ctrl in an |
| inconsistent way in bnxt_set_pauseparam() in autoneg mode. The AUTONEG |
| bit should not be added to link_info->req_flow_ctrl. |
| |
| Reviewed-by: Colin Winegarden <colin.winegarden@broadcom.com> |
| Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com> |
| Signed-off-by: Michael Chan <michael.chan@broadcom.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c |
| index f147ad5a6531..a47753a4498e 100644 |
| --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c |
| +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c |
| @@ -2076,9 +2076,7 @@ static int bnxt_set_pauseparam(struct net_device *dev, |
| } |
| |
| link_info->autoneg |= BNXT_AUTONEG_FLOW_CTRL; |
| - if (bp->hwrm_spec_code >= 0x10201) |
| - link_info->req_flow_ctrl = |
| - PORT_PHY_CFG_REQ_AUTO_PAUSE_AUTONEG_PAUSE; |
| + link_info->req_flow_ctrl = 0; |
| } else { |
| /* when transition from auto pause to force pause, |
| * force a link change |
| -- |
| 2.35.1 |
| |