From: Kamal Heib <kamalh@mellanox.com>
Date: Thu, 17 Aug 2017 15:52:31 +0300
Subject: IB/mlx5: Fix memory leak in clean_mr error path
Patch-mainline: v4.14-rc1
Git-commit: 5942d8ae411775b76e5e1ab0cce57b0666516f2d
References: bsc#1046305 FATE#322943
In clean_mr error path the 'mr' should be freed.
Fixes: e126ba97dba9 ('mlx5: Add driver for Mellanox Connect-IB adapters')
Signed-off-by: Kamal Heib <kamalh@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
drivers/infiniband/hw/mlx5/mr.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/drivers/infiniband/hw/mlx5/mr.c
+++ b/drivers/infiniband/hw/mlx5/mr.c
@@ -1490,19 +1490,19 @@ static int clean_mr(struct mlx5_ib_mr *m
mlx5_free_priv_descs(mr);
if (!allocated_from_cache) {
+ u32 key = mr->mmkey.key;
+
err = destroy_mkey(dev, mr);
+ kfree(mr);
if (err) {
mlx5_ib_warn(dev, "failed to destroy mkey 0x%x (%d)\n",
- mr->mmkey.key, err);
+ key, err);
return err;
}
} else {
mlx5_mr_cache_free(dev, mr);
}
- if (!allocated_from_cache)
- kfree(mr);
-
return 0;
}