Lines Matching refs:mmkey

198 	mlx5r_deref_wait_odp_mkey(&mr->mmkey);  in free_implicit_child_mr_work()
207 mlx5r_deref_odp_mkey(&imr->mmkey); in free_implicit_child_mr_work()
216 if (!refcount_inc_not_zero(&imr->mmkey.usecount)) in destroy_unused_implicit_child_mr()
432 mr->ibmr.lkey = mr->mmkey.key; in implicit_get_child_mr()
433 mr->ibmr.rkey = mr->mmkey.key; in implicit_get_child_mr()
442 refcount_set(&mr->mmkey.usecount, 2); in implicit_get_child_mr()
466 refcount_inc(&ret->mmkey.usecount); in implicit_get_child_mr()
471 mlx5_ib_dbg(mr_to_mdev(imr), "key %x mr %p\n", mr->mmkey.key, mr); in implicit_get_child_mr()
507 imr->ibmr.lkey = imr->mmkey.key; in mlx5_ib_alloc_implicit_mr()
508 imr->ibmr.rkey = imr->mmkey.key; in mlx5_ib_alloc_implicit_mr()
522 err = mlx5r_store_odp_mkey(dev, &imr->mmkey); in mlx5_ib_alloc_implicit_mr()
526 mlx5_ib_dbg(dev, "key %x mr %p\n", imr->mmkey.key, imr); in mlx5_ib_alloc_implicit_mr()
638 refcount_inc(&mtt->mmkey.usecount); in pagefault_implicit_mr()
649 mlx5r_deref_odp_mkey(&mtt->mmkey); in pagefault_implicit_mr()
792 static bool mkey_is_eq(struct mlx5_ib_mkey *mmkey, u32 key) in mkey_is_eq() argument
794 if (!mmkey) in mkey_is_eq()
796 if (mmkey->type == MLX5_MKEY_MW || in mkey_is_eq()
797 mmkey->type == MLX5_MKEY_INDIRECT_DEVX) in mkey_is_eq()
798 return mlx5_base_mkey(mmkey->key) == mlx5_base_mkey(key); in mkey_is_eq()
799 return mmkey->key == key; in mkey_is_eq()
821 struct mlx5_ib_mkey *mmkey; in pagefault_single_data_segment() local
832 mmkey = xa_load(&dev->odp_mkeys, mlx5_base_mkey(key)); in pagefault_single_data_segment()
833 if (!mmkey) { in pagefault_single_data_segment()
849 refcount_inc(&mmkey->usecount); in pagefault_single_data_segment()
852 if (!mkey_is_eq(mmkey, key)) { in pagefault_single_data_segment()
858 switch (mmkey->type) { in pagefault_single_data_segment()
860 mr = container_of(mmkey, struct mlx5_ib_mr, mmkey); in pagefault_single_data_segment()
881 sizeof(*pklm) * (mmkey->ndescs - 2); in pagefault_single_data_segment()
896 ret = mlx5_core_query_mkey(dev->mdev, mmkey->key, out, outlen); in pagefault_single_data_segment()
903 for (i = 0; bcnt && i < mmkey->ndescs; i++, pklm++) { in pagefault_single_data_segment()
929 mlx5_ib_dbg(dev, "wrong mkey type %d\n", mmkey->type); in pagefault_single_data_segment()
944 mlx5r_deref_odp_mkey(mmkey); in pagefault_single_data_segment()
949 if (mmkey) in pagefault_single_data_segment()
950 mlx5r_deref_odp_mkey(mmkey); in pagefault_single_data_segment()
1658 mlx5r_deref_odp_mkey(&work->frags[i].mr->mmkey); in destroy_prefetch_work()
1669 struct mlx5_ib_mkey *mmkey; in get_prefetchable_mr() local
1672 mmkey = xa_load(&dev->odp_mkeys, mlx5_base_mkey(lkey)); in get_prefetchable_mr()
1673 if (!mmkey || mmkey->key != lkey) { in get_prefetchable_mr()
1677 if (mmkey->type != MLX5_MKEY_MR) { in get_prefetchable_mr()
1682 mr = container_of(mmkey, struct mlx5_ib_mr, mmkey); in get_prefetchable_mr()
1696 refcount_inc(&mmkey->usecount); in get_prefetchable_mr()
1768 mlx5r_deref_odp_mkey(&mr->mmkey); in mlx5_ib_prefetch_sg_list()
1772 mlx5r_deref_odp_mkey(&mr->mmkey); in mlx5_ib_prefetch_sg_list()