[dpdk-dev] [PATCH] crypto/mlx5: fix driver probing error flow

Michael Baum michaelba at nvidia.com
Thu Jul 29 08:50:00 CEST 2021


In crypto driver probing, there are two validations after context
allocation.

When one of them fails, the context structure was not freed what caused
a memory leak.

Free it.

Fixes: debb27ea3442 ("crypto/mlx5: create login object using DevX")
Fixes: e8db4413cba5 ("crypto/mlx5: add keytag configuration")
Cc: stable at dpdk.org

Signed-off-by: Michael Baum <michaelba at nvidia.com>
Acked-by: Matan Azrad <matan at nvidia.com>
---
 drivers/crypto/mlx5/mlx5_crypto.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index ea734f4d5c..b3d5200ca3 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -1021,12 +1021,14 @@ mlx5_crypto_dev_probe(struct rte_device *dev)
 	ret = mlx5_crypto_parse_devargs(dev->devargs, &devarg_prms);
 	if (ret) {
 		DRV_LOG(ERR, "Failed to parse devargs.");
+		claim_zero(mlx5_glue->close_device(ctx));
 		return -rte_errno;
 	}
 	login = mlx5_devx_cmd_create_crypto_login_obj(ctx,
 						      &devarg_prms.login_attr);
 	if (login == NULL) {
 		DRV_LOG(ERR, "Failed to configure login.");
+		claim_zero(mlx5_glue->close_device(ctx));
 		return -rte_errno;
 	}
 	crypto_dev = rte_cryptodev_pmd_create(ibv->name, dev,
-- 
2.25.1



More information about the dev mailing list