diff options
author | Yishai Hadas <yishaih@mellanox.com> | 2019-03-06 19:21:42 +0200 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-03-17 21:40:39 -0300 |
commit | c5ae1954c47d3fd8815bd5a592aba18702c93f33 (patch) | |
tree | 98e5bda9b9d51c7f92d7984e5fa28cd9c3106de8 /include | |
parent | f84b66b9cce78e8f9d38204fdaa75f07c75f4911 (diff) | |
download | linux-stable-c5ae1954c47d3fd8815bd5a592aba18702c93f33.tar.gz linux-stable-c5ae1954c47d3fd8815bd5a592aba18702c93f33.tar.bz2 linux-stable-c5ae1954c47d3fd8815bd5a592aba18702c93f33.zip |
IB/mlx5: Use mlx5 core to create/destroy a DEVX DCT
To prevent a hardware memory leak when a DEVX DCT object is destroyed
without calling DRAIN DCT before, (e.g. under cleanup flow), need to
manage its creation and destruction via mlx5 core.
In that case the DRAIN DCT command will be called and only once that it
will be completed the DESTROY DCT command will be called. Otherwise, the
DESTROY DCT may fail and a hardware leak may occur.
As of that change the DRAIN DCT command should not be exposed any more
from DEVX, it's managed internally by the driver to work as expected by
the device specification.
Fixes: 7efce3691d33 ("IB/mlx5: Add obj create and destroy functionality")
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mlx5/qp.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index b26ea9077384..0343c81d4c5f 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h @@ -557,7 +557,8 @@ static inline struct mlx5_core_mkey *__mlx5_mr_lookup(struct mlx5_core_dev *dev, int mlx5_core_create_dct(struct mlx5_core_dev *dev, struct mlx5_core_dct *qp, - u32 *in, int inlen); + u32 *in, int inlen, + u32 *out, int outlen); int mlx5_core_create_qp(struct mlx5_core_dev *dev, struct mlx5_core_qp *qp, u32 *in, |