RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
authorLeon Romanovsky <leonro@mellanox.com>
Sun, 28 Jan 2018 09:25:30 +0000 (11:25 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Sun, 28 Jan 2018 21:07:16 +0000 (14:07 -0700)
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>
drivers/infiniband/hw/mlx5/qp.c

index ae36db3d0deba620410fbda07d97c2bdd84eadad..d5cc95ffd4ace13857896e52495330ba0ac9e752 100644 (file)
@@ -5067,13 +5067,10 @@ int mlx5_ib_dealloc_xrcd(struct ib_xrcd *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;
 }