[dpdk-dev] [PATCH v3] net/ixgbe: fix link status
Lunyuan Cui
lunyuanx.cui at intel.com
Mon Nov 18 11:13:45 CET 2019
After ports reset, tx laser register will be reset. The link
status for 82599eb got from link status register was not correct.
Set tx laser disable when port resets.
ixgbe_flap_tx_laser_multispeed_fiber() can cause link status
change from down to up. This treatment should work after
port starts.
Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")
Cc: stable at dpdk.org
Signed-off-by: Lunyuan Cui <lunyuanx.cui at intel.com>
---
v3:
* Correct countermeasure
Don't delete ixgbe_dev_setup_link_alarm_handler().
v2:
* Change commit log
Add a log why I delete ixgbe_dev_setup_link_alarm_handler().
---
drivers/net/ixgbe/ixgbe_ethdev.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 8c1caac18..260484fbf 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1188,6 +1188,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
diag = ixgbe_bypass_init_hw(hw);
#else
diag = ixgbe_init_hw(hw);
+ hw->mac.autotry_restart = false;
#endif /* RTE_LIBRTE_IXGBE_BYPASS */
/*
@@ -1298,6 +1299,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
/* enable support intr */
ixgbe_enable_intr(eth_dev);
+ ixgbe_dev_set_link_down(eth_dev);
+
/* initialize filter info */
memset(filter_info, 0,
sizeof(struct ixgbe_filter_info));
--
2.17.1
More information about the dev
mailing list