[dpdk-dev] [PATCH v2] net/ixgbe: fix link status

Cui LunyuanX lunyuanx.cui at intel.com
Wed Nov 13 17:34:41 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 disabled after ports reset.

ixgbe_dev_setup_link_alarm_handler() will set tx laser enabled
when show port information. The purpose of the function has already
implemented in ixgbe_dev_start(). There is no need to reuse it
in ixgbe_dev_link_update_share().

Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")
Cc: stable at dpdk.org

Signed-off-by: Cui LunyuanX <lunyuanx.cui at intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 8c1caac18..5e516599c 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1298,6 +1298,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));
@@ -4154,11 +4156,6 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
 		link_up = 0;
 
 	if (link_up == 0) {
-		if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
-			intr->flags |= IXGBE_FLAG_NEED_LINK_CONFIG;
-			rte_eal_alarm_set(10,
-				ixgbe_dev_setup_link_alarm_handler, dev);
-		}
 		return rte_eth_linkstatus_set(dev, &link);
 	}
 
-- 
2.17.1



More information about the dev mailing list