Lines Matching refs:mmkey

202 		mlx5_core_destroy_mkey(mr->dev->mdev, &mr->mmkey);  in dma_fence_odp_mr()
486 mr->ibmr.lkey = mr->mmkey.key; in implicit_get_child_mr()
487 mr->ibmr.rkey = mr->mmkey.key; in implicit_get_child_mr()
488 mr->mmkey.iova = idx * MLX5_IMR_MTT_SIZE; in implicit_get_child_mr()
520 mlx5_ib_dbg(imr->dev, "key %x mr %p\n", mr->mmkey.key, mr); in implicit_get_child_mr()
550 imr->mmkey.iova = 0; in mlx5_ib_alloc_implicit_mr()
552 imr->ibmr.lkey = imr->mmkey.key; in mlx5_ib_alloc_implicit_mr()
553 imr->ibmr.rkey = imr->mmkey.key; in mlx5_ib_alloc_implicit_mr()
569 err = xa_err(xa_store(&dev->odp_mkeys, mlx5_base_mkey(imr->mmkey.key), in mlx5_ib_alloc_implicit_mr()
570 &imr->mmkey, GFP_KERNEL)); in mlx5_ib_alloc_implicit_mr()
574 mlx5_ib_dbg(dev, "key %x mr %p\n", imr->mmkey.key, imr); in mlx5_ib_alloc_implicit_mr()
595 xa_erase(&dev->odp_mkeys, mlx5_base_mkey(imr->mmkey.key)); in mlx5_ib_free_implicit_mr()
657 xa_erase(&mr->dev->odp_mkeys, mlx5_base_mkey(mr->mmkey.key)); in mlx5_ib_fence_odp_mr()
815 if (unlikely(io_virt < mr->mmkey.iova)) in pagefault_mr()
821 if (check_add_overflow(io_virt - mr->mmkey.iova, in pagefault_mr()
856 static bool mkey_is_eq(struct mlx5_core_mkey *mmkey, u32 key) in mkey_is_eq() argument
858 if (!mmkey) in mkey_is_eq()
860 if (mmkey->type == MLX5_MKEY_MW) in mkey_is_eq()
861 return mlx5_base_mkey(mmkey->key) == mlx5_base_mkey(key); in mkey_is_eq()
862 return mmkey->key == key; in mkey_is_eq()
865 static int get_indirect_num_descs(struct mlx5_core_mkey *mmkey) in get_indirect_num_descs() argument
870 if (mmkey->type == MLX5_MKEY_MW) { in get_indirect_num_descs()
871 mw = container_of(mmkey, struct mlx5_ib_mw, mmkey); in get_indirect_num_descs()
875 devx_mr = container_of(mmkey, struct mlx5_ib_devx_mr, in get_indirect_num_descs()
876 mmkey); in get_indirect_num_descs()
899 struct mlx5_core_mkey *mmkey; in pagefault_single_data_segment() local
912 mmkey = xa_load(&dev->odp_mkeys, mlx5_base_mkey(key)); in pagefault_single_data_segment()
913 if (!mmkey) { in pagefault_single_data_segment()
928 if (!mkey_is_eq(mmkey, key)) { in pagefault_single_data_segment()
934 switch (mmkey->type) { in pagefault_single_data_segment()
936 mr = container_of(mmkey, struct mlx5_ib_mr, mmkey); in pagefault_single_data_segment()
950 ndescs = get_indirect_num_descs(mmkey); in pagefault_single_data_segment()
974 ret = mlx5_core_query_mkey(dev->mdev, mmkey, out, outlen); in pagefault_single_data_segment()
1007 mlx5_ib_dbg(dev, "wrong mkey type %d\n", mmkey->type); in pagefault_single_data_segment()
1749 struct mlx5_core_mkey *mmkey; in get_prefetchable_mr() local
1755 mmkey = xa_load(&dev->odp_mkeys, mlx5_base_mkey(lkey)); in get_prefetchable_mr()
1756 if (!mmkey || mmkey->key != lkey || mmkey->type != MLX5_MKEY_MR) in get_prefetchable_mr()
1759 mr = container_of(mmkey, struct mlx5_ib_mr, mmkey); in get_prefetchable_mr()