[PATCH rdma-next 3/6] RDMA/mlx5: Fix ucaps init error flow

Leon Romanovsky posted 6 patches 1 month ago
[PATCH rdma-next 3/6] RDMA/mlx5: Fix ucaps init error flow
Posted by Leon Romanovsky 1 month ago
From: Maher Sanalla <msanalla@nvidia.com>

In mlx5_ib_stage_caps_init(), if mlx5_ib_init_ucaps() fails after
mlx5_ib_init_var_table() succeeds, the VAR bitmap is leaked since
the function returns without cleanup.

Thus, cleanup the var table bitmap in case of error of initializing
ucaps before exiting, preventing the leak above.

Fixes: cf7174e8982f ("RDMA/mlx5: Create UCAP char devices for supported device capabilities")
Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
Reviewed-by: Yishai Hadas <yishaih@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/infiniband/hw/mlx5/main.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 40284bbb45d6..8d515d266125 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -4466,12 +4466,16 @@ static int mlx5_ib_stage_caps_init(struct mlx5_ib_dev *dev)
 	    MLX5_HCA_CAP_2_GENERAL_OBJECT_TYPES_RDMA_CTRL) {
 		err = mlx5_ib_init_ucaps(dev);
 		if (err)
-			return err;
+			goto err_ucaps;
 	}
 
 	dev->ib_dev.use_cq_dim = true;
 
 	return 0;
+
+err_ucaps:
+	bitmap_free(dev->var_table.bitmap);
+	return err;
 }
 
 static const struct ib_device_ops mlx5_ib_dev_port_ops = {

-- 
2.52.0
Re: [PATCH rdma-next 3/6] RDMA/mlx5: Fix ucaps init error flow
Posted by Kalesh Anakkur Purayil 1 month ago
On Sun, Jan 4, 2026 at 7:22 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> From: Maher Sanalla <msanalla@nvidia.com>
>
> In mlx5_ib_stage_caps_init(), if mlx5_ib_init_ucaps() fails after
> mlx5_ib_init_var_table() succeeds, the VAR bitmap is leaked since
> the function returns without cleanup.
>
> Thus, cleanup the var table bitmap in case of error of initializing
> ucaps before exiting, preventing the leak above.
>
> Fixes: cf7174e8982f ("RDMA/mlx5: Create UCAP char devices for supported device capabilities")
> Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
> Reviewed-by: Yishai Hadas <yishaih@nvidia.com>
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>

Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>


-- 
Regards,
Kalesh AP