Thomas Bogendoerfer 40201c
From: Navid Emamdoost <navid.emamdoost@gmail.com>
Thomas Bogendoerfer 40201c
Date: Tue, 24 Sep 2019 22:20:34 -0500
Thomas Bogendoerfer 40201c
Subject: net/mlx5: prevent memory leak in mlx5_fpga_conn_create_cq
Thomas Bogendoerfer 40201c
Patch-mainline: v5.4-rc6
Thomas Bogendoerfer 40201c
Git-commit: c8c2a057fdc7de1cd16f4baa51425b932a42eb39
Thomas Bogendoerfer 40201c
References: bsc#1046303 FATE#322944
Thomas Bogendoerfer 40201c
Thomas Bogendoerfer 40201c
In mlx5_fpga_conn_create_cq if mlx5_vector2eqn fails the allocated
Thomas Bogendoerfer 40201c
memory should be released.
Thomas Bogendoerfer 40201c
Thomas Bogendoerfer 40201c
Fixes: 537a50574175 ("net/mlx5: FPGA, Add high-speed connection routines")
Thomas Bogendoerfer 40201c
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Thomas Bogendoerfer 40201c
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Thomas Bogendoerfer 40201c
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 40201c
---
Thomas Bogendoerfer 40201c
 drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c |    4 +++-
Thomas Bogendoerfer 40201c
 1 file changed, 3 insertions(+), 1 deletion(-)
Thomas Bogendoerfer 40201c
Thomas Bogendoerfer 40201c
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
Thomas Bogendoerfer 40201c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
Thomas Bogendoerfer 40201c
@@ -461,8 +461,10 @@ static int mlx5_fpga_conn_create_cq(stru
Thomas Bogendoerfer 40201c
 	}
Thomas Bogendoerfer 40201c
 
Thomas Bogendoerfer 40201c
 	err = mlx5_vector2eqn(mdev, smp_processor_id(), &eqn, &irqn);
Thomas Bogendoerfer 40201c
-	if (err)
Thomas Bogendoerfer 40201c
+	if (err) {
Thomas Bogendoerfer 40201c
+		kvfree(in);
Thomas Bogendoerfer 40201c
 		goto err_cqwq;
Thomas Bogendoerfer 40201c
+	}
Thomas Bogendoerfer 40201c
 
Thomas Bogendoerfer 40201c
 	cqc = MLX5_ADDR_OF(create_cq_in, in, cq_context);
Thomas Bogendoerfer 40201c
 	MLX5_SET(cqc, cqc, log_cq_size, ilog2(cq_size));