IB/mlx5: DEVX cleanup mdev
No need any more to hold mlx5_core_dev on the devx_object, it can be accessed from ib_dev. Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
ef1659ade3
commit
5832fdd35e
|
@ -91,7 +91,6 @@ struct devx_async_event_file {
|
||||||
|
|
||||||
#define MLX5_MAX_DESTROY_INBOX_SIZE_DW MLX5_ST_SZ_DW(delete_fte_in)
|
#define MLX5_MAX_DESTROY_INBOX_SIZE_DW MLX5_ST_SZ_DW(delete_fte_in)
|
||||||
struct devx_obj {
|
struct devx_obj {
|
||||||
struct mlx5_core_dev *mdev;
|
|
||||||
struct mlx5_ib_dev *ib_dev;
|
struct mlx5_ib_dev *ib_dev;
|
||||||
u64 obj_id;
|
u64 obj_id;
|
||||||
u32 dinlen; /* destroy inbox length */
|
u32 dinlen; /* destroy inbox length */
|
||||||
|
@ -1291,7 +1290,7 @@ static void devx_free_indirect_mkey(struct rcu_head *rcu)
|
||||||
*/
|
*/
|
||||||
static void devx_cleanup_mkey(struct devx_obj *obj)
|
static void devx_cleanup_mkey(struct devx_obj *obj)
|
||||||
{
|
{
|
||||||
xa_erase(&obj->mdev->priv.mkey_table,
|
xa_erase(&obj->ib_dev->mdev->priv.mkey_table,
|
||||||
mlx5_base_mkey(obj->devx_mr.mmkey.key));
|
mlx5_base_mkey(obj->devx_mr.mmkey.key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1340,12 +1339,12 @@ static int devx_obj_cleanup(struct ib_uobject *uobject,
|
||||||
devx_cleanup_mkey(obj);
|
devx_cleanup_mkey(obj);
|
||||||
|
|
||||||
if (obj->flags & DEVX_OBJ_FLAGS_DCT)
|
if (obj->flags & DEVX_OBJ_FLAGS_DCT)
|
||||||
ret = mlx5_core_destroy_dct(obj->mdev, &obj->core_dct);
|
ret = mlx5_core_destroy_dct(obj->ib_dev->mdev, &obj->core_dct);
|
||||||
else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
|
else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
|
||||||
ret = mlx5_core_destroy_cq(obj->mdev, &obj->core_cq);
|
ret = mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
|
||||||
else
|
else
|
||||||
ret = mlx5_cmd_exec(obj->mdev, obj->dinbox, obj->dinlen, out,
|
ret = mlx5_cmd_exec(obj->ib_dev->mdev, obj->dinbox,
|
||||||
sizeof(out));
|
obj->dinlen, out, sizeof(out));
|
||||||
if (ib_is_destroy_retryable(ret, why, uobject))
|
if (ib_is_destroy_retryable(ret, why, uobject))
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -1456,7 +1455,6 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_DEVX_OBJ_CREATE)(
|
||||||
goto obj_free;
|
goto obj_free;
|
||||||
|
|
||||||
uobj->object = obj;
|
uobj->object = obj;
|
||||||
obj->mdev = dev->mdev;
|
|
||||||
INIT_LIST_HEAD(&obj->event_sub);
|
INIT_LIST_HEAD(&obj->event_sub);
|
||||||
obj->ib_dev = dev;
|
obj->ib_dev = dev;
|
||||||
devx_obj_build_destroy_cmd(cmd_in, cmd_out, obj->dinbox, &obj->dinlen,
|
devx_obj_build_destroy_cmd(cmd_in, cmd_out, obj->dinbox, &obj->dinlen,
|
||||||
|
@ -1485,11 +1483,11 @@ err_copy:
|
||||||
devx_cleanup_mkey(obj);
|
devx_cleanup_mkey(obj);
|
||||||
obj_destroy:
|
obj_destroy:
|
||||||
if (obj->flags & DEVX_OBJ_FLAGS_DCT)
|
if (obj->flags & DEVX_OBJ_FLAGS_DCT)
|
||||||
mlx5_core_destroy_dct(obj->mdev, &obj->core_dct);
|
mlx5_core_destroy_dct(obj->ib_dev->mdev, &obj->core_dct);
|
||||||
else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
|
else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
|
||||||
mlx5_core_destroy_cq(obj->mdev, &obj->core_cq);
|
mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
|
||||||
else
|
else
|
||||||
mlx5_cmd_exec(obj->mdev, obj->dinbox, obj->dinlen, out,
|
mlx5_cmd_exec(obj->ib_dev->mdev, obj->dinbox, obj->dinlen, out,
|
||||||
sizeof(out));
|
sizeof(out));
|
||||||
obj_free:
|
obj_free:
|
||||||
kfree(obj);
|
kfree(obj);
|
||||||
|
|
Loading…
Reference in New Issue