[PATCH v27 08/25] dma/dpaa: fix data validation on the completion path

Hemant Agrawal hemant.agrawal at nxp.com
Fri Oct 16 13:19:41 CEST 2026


fsl_qdma_data_validation() runs on every completion. It is a
byte-by-byte software compare of the transferred data, which belongs to
debugging and not to the datapath, where it costs a read-back and a
compare of every descriptor that completes.

Gate it behind s_data_validation, which is off by default, so the
compare is skipped unless it is explicitly asked for.

Fixes: f1d30e2786b6 ("dma/dpaa: refactor driver")
Cc: stable at dpdk.org

Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
 drivers/dma/dpaa/dpaa_qdma.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/dma/dpaa/dpaa_qdma.c b/drivers/dma/dpaa/dpaa_qdma.c
index e2cb157c43..85d351a8cf 100644
--- a/drivers/dma/dpaa/dpaa_qdma.c
+++ b/drivers/dma/dpaa/dpaa_qdma.c
@@ -11,6 +11,7 @@
 
 static uint32_t s_sg_max_entry_sz = 2000;
 static bool s_hw_err_check;
+static bool s_data_validation;
 
 #define DPAA_DMA_ERROR_CHECK "dpaa_dma_err_check"
 
@@ -392,6 +393,9 @@ fsl_qdma_data_validation(struct fsl_qdma_desc *desc[],
 	char err_msg[512];
 	int offset;
 
+	if (likely(!s_data_validation))
+		return;
+
 
 	offset = sprintf(err_msg, "Fatal TC%d/queue%d: ",
 		fsl_queue->block_id,
-- 
2.25.1



More information about the dev mailing list