[PATCH] crypto/mlx5: log when num of segs exceed max segs
Gregory Etelson
getelson at nvidia.com
Sun Feb 9 13:08:51 CET 2025
From: Shani Peretz <shperetz at nvidia.com>
This patch logs and aborts when mbuf segment count exceeding max_segs_num.
The log message suggests the user to either increase the segment size
or set a higher value for the max_segs_num devarg.
Fixes: b01095830734 ("crypto/mlx5: add GCM enqueue/dequeue operations")
Signed-off-by: Shani Peretz <shperetz at nvidia.com>
---
drivers/crypto/mlx5/mlx5_crypto_gcm.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/mlx5/mlx5_crypto_gcm.c b/drivers/crypto/mlx5/mlx5_crypto_gcm.c
index 89f32c7722..d7156a6abc 100644
--- a/drivers/crypto/mlx5/mlx5_crypto_gcm.c
+++ b/drivers/crypto/mlx5/mlx5_crypto_gcm.c
@@ -554,7 +554,15 @@ mlx5_crypto_gcm_build_mbuf_chain_klms(struct mlx5_crypto_qp *qp,
uint32_t klm_n = 0;
/* mbuf seg num should be less than max_segs_num. */
- MLX5_ASSERT(nb_segs <= qp->priv->max_segs_num);
+ if (nb_segs > qp->priv->max_segs_num) {
+ DRV_LOG(WARNING, "Segment count exceeds limit. "
+ "Current segments: %d, Maximum allowed: %d. "
+ "To resolve, either increase the segment size "
+ "or set a higher value for the devargs max_segs_num parameter.",
+ nb_segs, qp->priv->max_segs_num);
+ RTE_VERIFY(nb_segs <= qp->priv->max_segs_num);
+ return 0;
+ }
/* First mbuf needs to take the data offset. */
if (unlikely(_mlx5_crypto_gcm_umr_build_mbuf_klm(qp, mbuf, klm,
op->sym->aead.data.offset, &remain_len) == UINT32_MAX)) {
--
2.45.2
More information about the dev
mailing list