[PATCH 4.8 58/67] IB/mlx5: Fix memory leak in query device

From: Greg Kroah-Hartman
Date: Thu Nov 24 2016 - 10:37:05 EST


4.8-stable review patch. If anyone has any objections, please let me know.

------------------

From: Majd Dibbiny <majd@xxxxxxxxxxxx>

commit 90be7c8ab72853ff9fc407f01518a898df1f3045 upstream.

We need to free dev->port when we fail to enable RoCE or
initialize node data.

Fixes: 0837e86a7a34 ('IB/mlx5: Add per port counters')
Signed-off-by: Majd Dibbiny <majd@xxxxxxxxxxxx>
Signed-off-by: Maor Gottlieb <maorg@xxxxxxxxxxxx>
Reviewed-by: Mark Bloch <markb@xxxxxxxxxxxx>
Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/infiniband/hw/mlx5/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -2835,7 +2835,7 @@ static void *mlx5_ib_add(struct mlx5_cor
}
err = init_node_data(dev);
if (err)
- goto err_dealloc;
+ goto err_free_port;

mutex_init(&dev->flow_db.lock);
mutex_init(&dev->cap_mask_mutex);
@@ -2845,7 +2845,7 @@ static void *mlx5_ib_add(struct mlx5_cor
if (ll == IB_LINK_LAYER_ETHERNET) {
err = mlx5_enable_roce(dev);
if (err)
- goto err_dealloc;
+ goto err_free_port;
}

err = create_dev_resources(&dev->devr);