IB/mlx5: DEVX cleanup mdev
authorYishai Hadas <yishaih@mellanox.com>
Sun, 30 Jun 2019 16:23:34 +0000 (19:23 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 3 Jul 2019 20:13:44 +0000 (17:13 -0300)
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>
drivers/infiniband/hw/mlx5/devx.c

index b6cae4e..e69a869 100644 (file)
@@ -91,7 +91,6 @@ struct devx_async_event_file {
 
 #define MLX5_MAX_DESTROY_INBOX_SIZE_DW MLX5_ST_SZ_DW(delete_fte_in)
 struct devx_obj {
-       struct mlx5_core_dev    *mdev;
        struct mlx5_ib_dev      *ib_dev;
        u64                     obj_id;
        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)
 {
-       xa_erase(&obj->mdev->priv.mkey_table,
+       xa_erase(&obj->ib_dev->mdev->priv.mkey_table,
                 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);
 
        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)
-               ret = mlx5_core_destroy_cq(obj->mdev, &obj->core_cq);
+               ret = mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
        else
-               ret = mlx5_cmd_exec(obj->mdev, obj->dinbox, obj->dinlen, out,
-                                   sizeof(out));
+               ret = mlx5_cmd_exec(obj->ib_dev->mdev, obj->dinbox,
+                                   obj->dinlen, out, sizeof(out));
        if (ib_is_destroy_retryable(ret, why, uobject))
                return ret;
 
@@ -1456,7 +1455,6 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_DEVX_OBJ_CREATE)(
                goto obj_free;
 
        uobj->object = obj;
-       obj->mdev = dev->mdev;
        INIT_LIST_HEAD(&obj->event_sub);
        obj->ib_dev = dev;
        devx_obj_build_destroy_cmd(cmd_in, cmd_out, obj->dinbox, &obj->dinlen,
@@ -1485,11 +1483,11 @@ err_copy:
                devx_cleanup_mkey(obj);
 obj_destroy:
        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)
-               mlx5_core_destroy_cq(obj->mdev, &obj->core_cq);
+               mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
        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));
 obj_free:
        kfree(obj);