| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: Leon Romanovsky <leonro@mellanox.com> |
| Date: Sun, 28 Jan 2018 11:25:30 +0200 |
| Subject: RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure |
| |
| From: Leon Romanovsky <leonro@mellanox.com> |
| |
| [ Upstream commit b081808a66345ba725b77ecd8d759bee874cd937 ] |
| |
| Failure in XRCD FW deallocation command leaves memory leaked and |
| returns error to the user which he can't do anything about it. |
| |
| This patch changes behavior to always free memory and always return |
| success to the user. |
| |
| Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") |
| Reviewed-by: Majd Dibbiny <majd@mellanox.com> |
| Signed-off-by: Leon Romanovsky <leonro@mellanox.com> |
| Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> |
| Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/hw/mlx5/qp.c | 5 +---- |
| 1 file changed, 1 insertion(+), 4 deletions(-) |
| |
| --- a/drivers/infiniband/hw/mlx5/qp.c |
| +++ b/drivers/infiniband/hw/mlx5/qp.c |
| @@ -4610,13 +4610,10 @@ int mlx5_ib_dealloc_xrcd(struct ib_xrcd |
| int err; |
| |
| err = mlx5_core_xrcd_dealloc(dev->mdev, xrcdn); |
| - if (err) { |
| + if (err) |
| mlx5_ib_warn(dev, "failed to dealloc xrcdn 0x%x\n", xrcdn); |
| - return err; |
| - } |
| |
| kfree(xrcd); |
| - |
| return 0; |
| } |
| |