patch 'net/txgbe: keep link down after device close' has been queued to stable release 22.11.4

Xueming Li xuemingl at nvidia.com
Sun Oct 22 16:21:00 CEST 2023


Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. 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.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=adb1b606012dd1ac8f0374177c6432cd325347a3

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From adb1b606012dd1ac8f0374177c6432cd325347a3 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu at trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:54 +0800
Subject: [PATCH] net/txgbe: keep link down after device close
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]

When the port is closed, hardware is reset to power on. And
txgbe_dev_stop() is just returned 0 to avoid secondary calls,
so that the link led remains on. Fix this bug by adding to turn
off the copper/laser.

Fixes: e0d876ef6bbc ("net/txgbe: support device stop and close")

Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 7b558940c3..5f596e9ab9 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1917,7 +1917,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	struct txgbe_tm_conf *tm_conf = TXGBE_DEV_TM_CONF(dev);

 	if (hw->adapter_stopped)
-		return 0;
+		goto out;

 	PMD_INIT_FUNC_TRACE();

@@ -1940,14 +1940,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	for (vf = 0; vfinfo != NULL && vf < pci_dev->max_vfs; vf++)
 		vfinfo[vf].clear_to_send = false;

-	if (hw->phy.media_type == txgbe_media_type_copper) {
-		/* Turn off the copper */
-		hw->phy.set_phy_power(hw, false);
-	} else {
-		/* Turn off the laser */
-		hw->mac.disable_tx_laser(hw);
-	}
-
 	txgbe_dev_clear_queues(dev);

 	/* Clear stored conf */
@@ -1978,6 +1970,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	dev->data->dev_started = 0;
 	hw->dev_start = false;

+out:
+	/* close phy to prevent reset in dev_close from restarting physical link */
+	if (hw->phy.media_type == txgbe_media_type_copper) {
+		/* Turn off the copper */
+		hw->phy.set_phy_power(hw, false);
+	} else {
+		/* Turn off the laser */
+		hw->mac.disable_tx_laser(hw);
+	}
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.577311400 +0800
+++ 0031-net-txgbe-keep-link-down-after-device-close.patch	2023-10-22 22:17:34.186723700 +0800
@@ -1 +1 @@
-From 409a08c34fd20a25dd209438f52cb38ace081b19 Mon Sep 17 00:00:00 2001
+From adb1b606012dd1ac8f0374177c6432cd325347a3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]
@@ -12 +14,0 @@
-Cc: stable at dpdk.org
@@ -20 +22 @@
-index e789e34c01..2dad820cb5 100644
+index 7b558940c3..5f596e9ab9 100644
@@ -23 +25 @@
-@@ -1929,7 +1929,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1917,7 +1917,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
@@ -32 +34 @@
-@@ -1953,14 +1953,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1940,14 +1940,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
@@ -47 +49 @@
-@@ -1991,6 +1983,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1978,6 +1970,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)


More information about the stable mailing list