]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
IB/mlx4: Fix memory leak in __mlx4_ib_modify_qp
authorMajd Dibbiny <majd@mellanox.com>
Thu, 29 Jan 2015 08:41:41 +0000 (10:41 +0200)
committerRoland Dreier <roland@purestorage.com>
Wed, 18 Feb 2015 06:11:40 +0000 (22:11 -0800)
In case handle_eth_ud_smac_index fails, we need to free the allocated resources.

Fixes: 2f5bb473681b ("mlx4: Add ref counting to port MAC table for RoCE")
Signed-off-by: Majd Dibbiny <majd@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx4/qp.c

index cf000b7ad64f9b11698ee8dbfa2aec9883e886db..c880329b4d64691e3596490b2c18ad67c6ab4ef9 100644 (file)
@@ -1674,8 +1674,10 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
                            qp->mlx4_ib_qp_type == MLX4_IB_QPT_PROXY_GSI ||
                            qp->mlx4_ib_qp_type == MLX4_IB_QPT_TUN_GSI) {
                                err = handle_eth_ud_smac_index(dev, qp, (u8 *)attr->smac, context);
-                               if (err)
-                                       return -EINVAL;
+                               if (err) {
+                                       err = -EINVAL;
+                                       goto out;
+                               }
                                if (qp->mlx4_ib_qp_type == MLX4_IB_QPT_PROXY_GSI)
                                        dev->qp1_proxy[qp->port - 1] = qp;
                        }