patch 'dma/cnxk: fix crash on secondary process cleanup' has been queued to stable release 24.11.7
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Jun 11 15:20:29 CEST 2026
Hi,
FYI, your patch has been queued to stable release 24.11.7
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/13/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/89289050795fd6089aad36a8866e29a87258128c
Thanks.
Luca Boccassi
---
>From 89289050795fd6089aad36a8866e29a87258128c Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula at marvell.com>
Date: Fri, 5 Jun 2026 13:46:19 +0530
Subject: [PATCH] dma/cnxk: fix crash on secondary process cleanup
[ upstream commit a4a3e91d98db3a56d50b3cb3ff0a03c2b4b2744c ]
cnxk_dmadev_probe() ran in secondary processes too, overwriting the
shared rdpi->pci_dev with a process-local pointer and marking the
device ready. With buses now cleaned up on shutdown, the primary's
roc_dpi_dev_fini() dereferences that stale pointer and crashes.
Skip HW init in secondary processes: attach to the shared device data
and return, leaving rdpi and the device state untouched.
Fixes: 53f6d7328bf4 ("dma/cnxk: create and initialize device on PCI probing")
Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
---
drivers/dma/cnxk/cnxk_dmadev.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/dma/cnxk/cnxk_dmadev.c b/drivers/dma/cnxk/cnxk_dmadev.c
index e7be3767b2..15824dfca2 100644
--- a/drivers/dma/cnxk/cnxk_dmadev.c
+++ b/drivers/dma/cnxk/cnxk_dmadev.c
@@ -581,6 +581,9 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_de
dmadev->fp_obj->completed_status = cnxk_dmadev_completed_status;
dmadev->fp_obj->burst_capacity = cnxk_damdev_burst_capacity;
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+ return 0;
+
if (roc_model_is_cn10k()) {
dpivf->is_cn10k = true;
dmadev->fp_obj->copy = cn10k_dmadev_copy;
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-06-11 14:20:04.483754305 +0100
+++ 0080-dma-cnxk-fix-crash-on-secondary-process-cleanup.patch 2026-06-11 14:20:01.314748413 +0100
@@ -1 +1 @@
-From a4a3e91d98db3a56d50b3cb3ff0a03c2b4b2744c Mon Sep 17 00:00:00 2001
+From 89289050795fd6089aad36a8866e29a87258128c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a4a3e91d98db3a56d50b3cb3ff0a03c2b4b2744c ]
+
@@ -15 +16,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index 0dcebc1b0b..6ae7fdca3b 100644
+index e7be3767b2..15824dfca2 100644
@@ -26,3 +27,3 @@
-@@ -617,6 +617,9 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_de
- dmadev->fp_obj->dev_private = dpivf;
- dmadev->dev_ops = &cnxk_dmadev_ops;
+@@ -581,6 +581,9 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_de
+ dmadev->fp_obj->completed_status = cnxk_dmadev_completed_status;
+ dmadev->fp_obj->burst_capacity = cnxk_damdev_burst_capacity;
@@ -33,3 +34,3 @@
- dpivf->is_cn10k = roc_model_is_cn10k();
- dpivf->mcs_lock = NULL;
- rdpi = &dpivf->rdpi;
+ if (roc_model_is_cn10k()) {
+ dpivf->is_cn10k = true;
+ dmadev->fp_obj->copy = cn10k_dmadev_copy;
More information about the stable
mailing list