patch 'net/axgbe: reset link when link never comes back' has been queued to stable release 21.11.8
Kevin Traynor
ktraynor at redhat.com
Fri Aug 23 18:17:26 CEST 2024
Hi,
FYI, your patch has been queued to stable release 21.11.8
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/28/24. 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://github.com/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/4615048c8a362ca9b6fef5d83abc56e31643dfa9
Thanks.
Kevin
---
>From 4615048c8a362ca9b6fef5d83abc56e31643dfa9 Mon Sep 17 00:00:00 2001
From: Venkat Kumar Ande <venkatkumar.ande at amd.com>
Date: Tue, 4 Jun 2024 17:41:34 +0530
Subject: [PATCH] net/axgbe: reset link when link never comes back
[ upstream commit edf463256dd35803aaa11b0da704a0542ad20071 ]
Normally, auto negotiation and reconnect should be automatically done by
the hardware. But there seems to be an issue where auto negotiation has
to be restarted manually. This happens because of link training and so
even though still connected to the partner the link never "comes back".
This needs an auto-negotiation restart.
Without the fix the user will not see the link up status
Fixes: a5c7273771e8 ("net/axgbe: add phy programming APIs")
Signed-off-by: Venkat Kumar Ande <venkatkumar.ande at amd.com>
Acked-by: Selwin Sebastian <selwin.sebastian at amd.com>
---
drivers/net/axgbe/axgbe_mdio.c | 2 +-
drivers/net/axgbe/axgbe_phy_impl.c | 7 +++++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/axgbe/axgbe_mdio.c b/drivers/net/axgbe/axgbe_mdio.c
index 32d8c666f9..523b6c0f07 100644
--- a/drivers/net/axgbe/axgbe_mdio.c
+++ b/drivers/net/axgbe/axgbe_mdio.c
@@ -1084,5 +1084,5 @@ static void axgbe_phy_status(struct axgbe_port *pdata)
if (an_restart) {
axgbe_phy_config_aneg(pdata);
- return;
+ goto adjust_link;
}
diff --git a/drivers/net/axgbe/axgbe_phy_impl.c b/drivers/net/axgbe/axgbe_phy_impl.c
index 72104f8a3f..df334749e9 100644
--- a/drivers/net/axgbe/axgbe_phy_impl.c
+++ b/drivers/net/axgbe/axgbe_phy_impl.c
@@ -1694,4 +1694,11 @@ static int axgbe_phy_link_status(struct axgbe_port *pdata, int *an_restart)
return 1;
+ if (pdata->phy.autoneg == AUTONEG_ENABLE &&
+ phy_data->port_mode == AXGBE_PORT_MODE_BACKPLANE) {
+ if (rte_bit_relaxed_get32(AXGBE_LINK_INIT, &pdata->dev_state)) {
+ *an_restart = 1;
+ }
+ }
+
/* No link, attempt a receiver reset cycle */
if (phy_data->rrc_count++) {
--
2.46.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-08-23 17:18:10.545995897 +0100
+++ 0018-net-axgbe-reset-link-when-link-never-comes-back.patch 2024-08-23 17:18:09.639429822 +0100
@@ -1 +1 @@
-From edf463256dd35803aaa11b0da704a0542ad20071 Mon Sep 17 00:00:00 2001
+From 4615048c8a362ca9b6fef5d83abc56e31643dfa9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit edf463256dd35803aaa11b0da704a0542ad20071 ]
+
@@ -15 +16,0 @@
-Cc: stable at dpdk.org
@@ -25 +26 @@
-index 913ceada0d..b03bc471cb 100644
+index 32d8c666f9..523b6c0f07 100644
@@ -28 +29 @@
-@@ -1052,5 +1052,5 @@ static void axgbe_phy_status(struct axgbe_port *pdata)
+@@ -1084,5 +1084,5 @@ static void axgbe_phy_status(struct axgbe_port *pdata)
@@ -36 +37 @@
-index 44ff28517c..54fe9faae0 100644
+index 72104f8a3f..df334749e9 100644
@@ -39 +40 @@
-@@ -1698,4 +1698,11 @@ static int axgbe_phy_link_status(struct axgbe_port *pdata, int *an_restart)
+@@ -1694,4 +1694,11 @@ static int axgbe_phy_link_status(struct axgbe_port *pdata, int *an_restart)
More information about the stable
mailing list