[dpdk-stable] patch 'net/ixgbe: fix link status' has been queued to LTS release 17.11.10

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Dec 19 15:34:42 CET 2019


Hi,

FYI, your patch has been queued to LTS release 17.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/21/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From e72dd787d42dd8e2473d12df1845c38aa2dcfe07 Mon Sep 17 00:00:00 2001
From: Lunyuan Cui <lunyuanx.cui at intel.com>
Date: Mon, 18 Nov 2019 15:37:44 +0000
Subject: [PATCH] net/ixgbe: fix link status

[ upstream commit c3f2fbff78cf5bd4f213b4f281251d401b09943f ]

The link status for 82599eb got from link status register was not
correct. Check the enable/disable flag of tx laser, set the link
status down if tx laser disabled. Then, we can get correct status.
But after port reset, tx laser register will be reset enable.
Link status will always be up. So set tx laser disable when port resets.

When hw->mac.autotry_restart is true, whether tx laser is disable or
enable, it will be set enable in ixgbe_flap_tx_laser_multispeed_fiber().
hw->mac.autotry_restart can be set true in both port init and port start.
Because we don't need this treatment before port starts, set
hw->mac.autotry_restart false when port init.

Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")

Signed-off-by: Lunyuan Cui <lunyuanx.cui at intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu at intel.com>
---
 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 8325d66f2f..0532bf620e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1232,6 +1232,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 	diag = ixgbe_bypass_init_hw(hw);
 #else
 	diag = ixgbe_init_hw(hw);
+	hw->mac.autotry_restart = false;
 #endif /* RTE_LIBRTE_IXGBE_BYPASS */
 
 	/*
@@ -1337,6 +1338,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 	/* 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.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-19 14:32:31.686443362 +0000
+++ 0135-net-ixgbe-fix-link-status.patch	2019-12-19 14:32:26.349302664 +0000
@@ -1,8 +1,10 @@
-From c3f2fbff78cf5bd4f213b4f281251d401b09943f Mon Sep 17 00:00:00 2001
+From e72dd787d42dd8e2473d12df1845c38aa2dcfe07 Mon Sep 17 00:00:00 2001
 From: Lunyuan Cui <lunyuanx.cui at intel.com>
 Date: Mon, 18 Nov 2019 15:37:44 +0000
 Subject: [PATCH] net/ixgbe: fix link status
 
+[ upstream commit c3f2fbff78cf5bd4f213b4f281251d401b09943f ]
+
 The link status for 82599eb got from link status register was not
 correct. Check the enable/disable flag of tx laser, set the link
 status down if tx laser disabled. Then, we can get correct status.
@@ -16,7 +18,6 @@
 hw->mac.autotry_restart false when port init.
 
 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>
 Acked-by: Wenzhuo Lu <wenzhuo.lu at intel.com>
@@ -25,10 +26,10 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
-index 118bc74758..2c6fd0f131 100644
+index 8325d66f2f..0532bf620e 100644
 --- a/drivers/net/ixgbe/ixgbe_ethdev.c
 +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
-@@ -1190,6 +1190,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1232,6 +1232,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
  	diag = ixgbe_bypass_init_hw(hw);
  #else
  	diag = ixgbe_init_hw(hw);
@@ -36,7 +37,7 @@
  #endif /* RTE_LIBRTE_IXGBE_BYPASS */
  
  	/*
-@@ -1300,6 +1301,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1337,6 +1338,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
  	/* enable support intr */
  	ixgbe_enable_intr(eth_dev);
  


More information about the stable mailing list