patch 'common/cnxk: fix TM link config selection in debug dump' has been queued to stable release 25.11.3
Kevin Traynor
ktraynor at redhat.com
Tue Jul 28 17:56:33 CEST 2026
Hi,
FYI, your patch has been queued to stable release 25.11.3
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/01/26. 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/dc3c2daee337d18a3eb7be9d5817166ebd94ac61
Thanks.
Kevin
---
>From dc3c2daee337d18a3eb7be9d5817166ebd94ac61 Mon Sep 17 00:00:00 2001
From: Satha Rao <skoteshwar at marvell.com>
Date: Mon, 15 Jun 2026 21:54:46 +0530
Subject: [PATCH] common/cnxk: fix TM link config selection in debug dump
[ upstream commit 56afb42a107a3bf9dfe2fd312abb5e7f5d3628a0 ]
Only emit the TM link configuration register when the configured TM
link level matches the hardware level being dumped, and use nix->tx_link
for the register and label so the dump reflects the active link.
Fixes: fcdef46b6698 ("common/cnxk: support NIX TM debug and misc utils")
Signed-off-by: Satha Rao <skoteshwar at marvell.com>
---
drivers/common/cnxk/roc_nix_debug.c | 31 +++++++++++++++++++----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/common/cnxk/roc_nix_debug.c b/drivers/common/cnxk/roc_nix_debug.c
index 11994bf131..6e40b1130f 100644
--- a/drivers/common/cnxk/roc_nix_debug.c
+++ b/drivers/common/cnxk/roc_nix_debug.c
@@ -1142,5 +1142,5 @@ roc_nix_sq_dump(struct roc_nix_sq *sq, FILE *file)
static uint8_t
-nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
+nix_tm_reg_dump_prep(struct nix *nix, uint16_t hw_lvl, uint16_t schq,
uint64_t *reg, char regstr[][NIX_REG_NAME_SZ])
{
@@ -1220,7 +1220,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
"NIX_AF_TL3[%u]_TOPOLOGY", schq);
- reg[k] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, link);
- snprintf(regstr[k++], NIX_REG_NAME_SZ,
- "NIX_AF_TL3_TL2[%u]_LINK[%u]_CFG", schq, link);
+ /* Link configuration */
+ if (!nix->sdp_link &&
+ nix->tm_link_cfg_lvl == NIX_TXSCH_LVL_TL3) {
+ reg[k] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, nix->tx_link);
+ snprintf(regstr[k++], NIX_REG_NAME_SZ,
+ "NIX_AF_TL3_TL2[%u]_LINK[%u]_CFG", schq,
+ nix->tx_link);
+ }
reg[k] = NIX_AF_TL3X_SCHEDULE(schq);
@@ -1253,7 +1258,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
"NIX_AF_TL2[%u]_TOPOLOGY", schq);
- reg[k] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, link);
- snprintf(regstr[k++], NIX_REG_NAME_SZ,
- "NIX_AF_TL3_TL2[%u]_LINK[%u]_CFG", schq, link);
+ /* Link configuration */
+ if (!nix->sdp_link &&
+ nix->tm_link_cfg_lvl == NIX_TXSCH_LVL_TL2) {
+ reg[k] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, nix->tx_link);
+ snprintf(regstr[k++], NIX_REG_NAME_SZ,
+ "NIX_AF_TL3_TL2[%u]_LINK[%u]_CFG", schq,
+ nix->tx_link);
+ }
reg[k] = NIX_AF_TL2X_SCHEDULE(schq);
@@ -1362,6 +1372,5 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
/* Dump registers only when HWRES is present */
- k = nix_tm_reg_dump_prep(node->hw_lvl, schq, nix->tx_link, reg,
- regstr);
+ k = nix_tm_reg_dump_prep(nix, node->hw_lvl, schq, reg, regstr);
if (!k)
continue;
@@ -1388,6 +1397,6 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
/* Dump TL1 node data when root level is TL2 */
if (root && root->hw_lvl == NIX_TXSCH_LVL_TL2) {
- k = nix_tm_reg_dump_prep(NIX_TXSCH_LVL_TL1, root->parent_hw_id,
- nix->tx_link, reg, regstr);
+ k = nix_tm_reg_dump_prep(nix, NIX_TXSCH_LVL_TL1,
+ root->parent_hw_id, reg, regstr);
if (!k)
return;
--
2.55.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-07-28 16:54:52.629872563 +0100
+++ 0063-common-cnxk-fix-TM-link-config-selection-in-debug-du.patch 2026-07-28 16:54:50.811560470 +0100
@@ -1 +1 @@
-From 56afb42a107a3bf9dfe2fd312abb5e7f5d3628a0 Mon Sep 17 00:00:00 2001
+From dc3c2daee337d18a3eb7be9d5817166ebd94ac61 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 56afb42a107a3bf9dfe2fd312abb5e7f5d3628a0 ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -19 +20 @@
-index d4b2b86916..9c3bc8abe3 100644
+index 11994bf131..6e40b1130f 100644
@@ -22 +23 @@
-@@ -1151,5 +1151,5 @@ roc_nix_sq_dump(struct roc_nix_sq *sq, FILE *file)
+@@ -1142,5 +1142,5 @@ roc_nix_sq_dump(struct roc_nix_sq *sq, FILE *file)
@@ -29 +30 @@
-@@ -1229,7 +1229,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
+@@ -1220,7 +1220,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
@@ -45 +46 @@
-@@ -1262,7 +1267,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
+@@ -1253,7 +1258,12 @@ nix_tm_reg_dump_prep(uint16_t hw_lvl, uint16_t schq, uint16_t link,
@@ -61 +62 @@
-@@ -1371,6 +1381,5 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
+@@ -1362,6 +1372,5 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
@@ -69 +70 @@
-@@ -1397,6 +1406,6 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
+@@ -1388,6 +1397,6 @@ nix_tm_dump_lvl(struct nix *nix, struct nix_tm_node_list *list, uint8_t hw_lvl)
More information about the stable
mailing list