diff options
author | Moshe Lazer <moshel@mellanox.com> | 2013-09-11 15:35:24 +0200 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2013-10-10 18:23:55 +0200 |
commit | 56e1ab0f13509ff9ceaab2fb668c80e6722e1c94 (patch) | |
tree | 73409f6b85a3da97cf94516311c79595fae58e1b /drivers/infiniband/hw/mlx5/srq.c | |
parent | IB/mlx5: Flush cache workqueue before destroying it (diff) | |
download | linux-56e1ab0f13509ff9ceaab2fb668c80e6722e1c94.tar.xz linux-56e1ab0f13509ff9ceaab2fb668c80e6722e1c94.zip |
IB/mlx5: Fix memory leak in mlx5_ib_create_srq
The patch fixes the rollback in case of failure in creating SRQ.
Signed-off-by: Moshe Lazer <moshel@mellanox.com>
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/srq.c')
-rw-r--r-- | drivers/infiniband/hw/mlx5/srq.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c index 84d297afd6a9..0aa478bc291a 100644 --- a/drivers/infiniband/hw/mlx5/srq.c +++ b/drivers/infiniband/hw/mlx5/srq.c @@ -295,7 +295,7 @@ struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd, mlx5_vfree(in); if (err) { mlx5_ib_dbg(dev, "create SRQ failed, err %d\n", err); - goto err_srq; + goto err_usr_kern_srq; } mlx5_ib_dbg(dev, "create SRQ with srqn 0x%x\n", srq->msrq.srqn); @@ -316,6 +316,8 @@ struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd, err_core: mlx5_core_destroy_srq(&dev->mdev, &srq->msrq); + +err_usr_kern_srq: if (pd->uobject) destroy_srq_user(pd, srq); else |