diff mbox series

RDMA/hns: fix memory leak in hns_roce_alloc_mr()

Message ID 20221119070834.48502-1-shaozhengchao@huawei.com (mailing list archive)
State Accepted
Headers show
Series RDMA/hns: fix memory leak in hns_roce_alloc_mr() | expand

Commit Message

shaozhengchao Nov. 19, 2022, 7:08 a.m. UTC
When hns_roce_mr_enable() failed in hns_roce_alloc_mr(), mr_key is not
released. Compiled test only.

Fixes: 9b2cf76c9f05 ("RDMA/hns: Optimize PBL buffer allocation process")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
---
 drivers/infiniband/hw/hns/hns_roce_mr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Haoyue Xu Nov. 22, 2022, 6:34 a.m. UTC | #1
On 2022/11/19 15:08:34, Zhengchao Shao wrote:
> When hns_roce_mr_enable() failed in hns_roce_alloc_mr(), mr_key is not
> released. Compiled test only.
> 
> Fixes: 9b2cf76c9f05 ("RDMA/hns: Optimize PBL buffer allocation process")
> Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
> ---
>  drivers/infiniband/hw/hns/hns_roce_mr.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
> index 845ac7d3831f..37a5cf62f88b 100644
> --- a/drivers/infiniband/hw/hns/hns_roce_mr.c
> +++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
> @@ -392,10 +392,10 @@ struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
>  
>  	return &mr->ibmr;
>  
> -err_key:
> -	free_mr_key(hr_dev, mr);
>  err_pbl:
>  	free_mr_pbl(hr_dev, mr);
> +err_key:
> +	free_mr_key(hr_dev, mr);
>  err_free:
>  	kfree(mr);
>  	return ERR_PTR(ret);
> 

Thank you. For the patch:
Acked-by Haoyue Xu <xuhaoyue1@hisilicon.com>

Regards,
Haoyue
Leon Romanovsky Nov. 22, 2022, 2:22 p.m. UTC | #2
On Sat, 19 Nov 2022 15:08:34 +0800, Zhengchao Shao wrote:
> When hns_roce_mr_enable() failed in hns_roce_alloc_mr(), mr_key is not
> released. Compiled test only.
> 
> 

Applied, thanks!

[1/1] RDMA/hns: fix memory leak in hns_roce_alloc_mr()
      https://git.kernel.org/rdma/rdma/c/a115aa00b18f7b

Best regards,
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
index 845ac7d3831f..37a5cf62f88b 100644
--- a/drivers/infiniband/hw/hns/hns_roce_mr.c
+++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
@@ -392,10 +392,10 @@  struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
 
 	return &mr->ibmr;
 
-err_key:
-	free_mr_key(hr_dev, mr);
 err_pbl:
 	free_mr_pbl(hr_dev, mr);
+err_key:
+	free_mr_key(hr_dev, mr);
 err_free:
 	kfree(mr);
 	return ERR_PTR(ret);