Lines Matching refs:mmkey

132 	WARN_ON(xa_load(&dev->odp_mkeys, mlx5_base_mkey(mr->mmkey.key)));  in destroy_mkey()
134 return mlx5_core_destroy_mkey(dev->mdev, mr->mmkey.key); in destroy_mkey()
738 err = create_cache_mkey(ent, &mr->mmkey.key); in _mlx5_mr_cache_alloc()
747 mr->mmkey.key = pop_mkey_locked(ent); in _mlx5_mr_cache_alloc()
751 mr->mmkey.cache_ent = ent; in _mlx5_mr_cache_alloc()
752 mr->mmkey.type = MLX5_MKEY_MR; in _mlx5_mr_cache_alloc()
753 mr->mmkey.rb_key = ent->rb_key; in _mlx5_mr_cache_alloc()
754 mr->mmkey.cacheable = true; in _mlx5_mr_cache_alloc()
755 init_waitqueue_head(&mr->mmkey.wait); in _mlx5_mr_cache_alloc()
1049 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen); in mlx5_ib_get_dma_mr()
1054 mr->mmkey.type = MLX5_MKEY_MR; in mlx5_ib_get_dma_mr()
1055 mr->ibmr.lkey = mr->mmkey.key; in mlx5_ib_get_dma_mr()
1056 mr->ibmr.rkey = mr->mmkey.key; in mlx5_ib_get_dma_mr()
1091 mr->ibmr.lkey = mr->mmkey.key; in set_mr_fields()
1092 mr->ibmr.rkey = mr->mmkey.key; in set_mr_fields()
1142 mr->mmkey.rb_key = rb_key; in alloc_cacheable_mr()
1143 mr->mmkey.cacheable = true; in alloc_cacheable_mr()
1198 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen); in reg_create_crossing_vhca_mr()
1202 mr->mmkey.type = MLX5_MKEY_MR; in reg_create_crossing_vhca_mr()
1206 mlx5_ib_dbg(dev, "crossing mkey = 0x%x\n", mr->mmkey.key); in reg_create_crossing_vhca_mr()
1297 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen); in reg_create()
1302 mr->mmkey.type = MLX5_MKEY_MR; in reg_create()
1303 mr->mmkey.ndescs = get_octo_len(iova, umem->length, mr->page_shift); in reg_create()
1308 mlx5_ib_dbg(dev, "mkey = 0x%x\n", mr->mmkey.key); in reg_create()
1346 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen); in mlx5_ib_get_dm_mr()
1441 mlx5_ib_dbg(dev, "mkey 0x%x\n", mr->mmkey.key); in create_real_mr()
1505 err = mlx5r_store_odp_mkey(dev, &mr->mmkey); in create_user_odp_mr()
1603 mlx5_ib_dbg(dev, "mkey 0x%x\n", mr->mmkey.key); in reg_user_mr_dmabuf()
1608 err = mlx5r_store_odp_mkey(dev, &mr->mmkey); in reg_user_mr_dmabuf()
1742 if (!mr->mmkey.cache_ent) in can_use_umr_rereg_pas()
1750 return (mr->mmkey.cache_ent->rb_key.ndescs) >= in can_use_umr_rereg_pas()
1958 if (mr->mmkey.cache_ent) { in cache_ent_find_and_store()
1959 spin_lock_irq(&mr->mmkey.cache_ent->mkeys_queue.lock); in cache_ent_find_and_store()
1960 mr->mmkey.cache_ent->in_use--; in cache_ent_find_and_store()
1965 ent = mkey_cache_ent_from_rb_key(dev, mr->mmkey.rb_key); in cache_ent_find_and_store()
1967 if (ent->rb_key.ndescs == mr->mmkey.rb_key.ndescs) { in cache_ent_find_and_store()
1972 mr->mmkey.cache_ent = ent; in cache_ent_find_and_store()
1973 spin_lock_irq(&mr->mmkey.cache_ent->mkeys_queue.lock); in cache_ent_find_and_store()
1979 ent = mlx5r_cache_create_ent_locked(dev, mr->mmkey.rb_key, false); in cache_ent_find_and_store()
1984 mr->mmkey.cache_ent = ent; in cache_ent_find_and_store()
1985 spin_lock_irq(&mr->mmkey.cache_ent->mkeys_queue.lock); in cache_ent_find_and_store()
1988 ret = push_mkey_locked(mr->mmkey.cache_ent, mr->mmkey.key); in cache_ent_find_and_store()
1989 spin_unlock_irq(&mr->mmkey.cache_ent->mkeys_queue.lock); in cache_ent_find_and_store()
2024 struct mlx5_cache_ent *ent = mr->mmkey.cache_ent; in mlx5_revoke_mr()
2036 if (mr->mmkey.cacheable && !mlx5r_umr_revoke_mr(mr) && !cache_ent_find_and_store(dev, mr)) { in mlx5_revoke_mr()
2037 ent = mr->mmkey.cache_ent; in mlx5_revoke_mr()
2052 mr->mmkey.cache_ent = NULL; in mlx5_revoke_mr()
2084 refcount_read(&mr->mmkey.usecount) != 0 && in __mlx5_ib_dereg_mr()
2085 xa_erase(&mr_to_mdev(mr)->odp_mkeys, mlx5_base_mkey(mr->mmkey.key))) in __mlx5_ib_dereg_mr()
2086 mlx5r_deref_wait_odp_mkey(&mr->mmkey); in __mlx5_ib_dereg_mr()
2089 xa_cmpxchg(&dev->sig_mrs, mlx5_base_mkey(mr->mmkey.key), in __mlx5_ib_dereg_mr()
2132 if (!mr->mmkey.cache_ent) in __mlx5_ib_dereg_mr()
2207 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen); in _mlx5_alloc_mkey_descs()
2211 mr->mmkey.type = MLX5_MKEY_MR; in _mlx5_alloc_mkey_descs()
2212 mr->ibmr.lkey = mr->mmkey.key; in _mlx5_alloc_mkey_descs()
2213 mr->ibmr.rkey = mr->mmkey.key; in _mlx5_alloc_mkey_descs()
2331 err = xa_err(xa_store(&dev->sig_mrs, mlx5_base_mkey(mr->mmkey.key), in mlx5_alloc_integrity_descs()
2470 err = mlx5_ib_create_mkey(dev, &mw->mmkey, in, inlen); in mlx5_ib_alloc_mw()
2474 mw->mmkey.type = MLX5_MKEY_MW; in mlx5_ib_alloc_mw()
2475 ibmw->rkey = mw->mmkey.key; in mlx5_ib_alloc_mw()
2476 mw->mmkey.ndescs = ndescs; in mlx5_ib_alloc_mw()
2487 err = mlx5r_store_odp_mkey(dev, &mw->mmkey); in mlx5_ib_alloc_mw()
2496 mlx5_core_destroy_mkey(dev->mdev, mw->mmkey.key); in mlx5_ib_alloc_mw()
2508 xa_erase(&dev->odp_mkeys, mlx5_base_mkey(mmw->mmkey.key))) in mlx5_ib_dealloc_mw()
2513 mlx5r_deref_wait_odp_mkey(&mmw->mmkey); in mlx5_ib_dealloc_mw()
2515 return mlx5_core_destroy_mkey(dev->mdev, mmw->mmkey.key); in mlx5_ib_dealloc_mw()
2572 mr->mmkey.ndescs = 1; in mlx5_ib_map_pa_mr_sg_pi()
2625 mr->mmkey.ndescs = i; in mlx5_ib_sg_to_klms()
2658 if (unlikely(mr->mmkey.ndescs == mr->max_descs)) in mlx5_set_page()
2662 descs[mr->mmkey.ndescs++] = cpu_to_be64(addr | MLX5_EN_RD | MLX5_EN_WR); in mlx5_set_page()
2672 if (unlikely(mr->mmkey.ndescs + mr->meta_ndescs == mr->max_descs)) in mlx5_set_page_pi()
2676 descs[mr->mmkey.ndescs + mr->meta_ndescs++] = in mlx5_set_page_pi()
2692 pi_mr->mmkey.ndescs = 0; in mlx5_ib_map_mtt_mr_sg_pi()
2726 pi_mr->mmkey.ndescs * ibmr->page_size + in mlx5_ib_map_mtt_mr_sg_pi()
2757 pi_mr->mmkey.ndescs = 0; in mlx5_ib_map_klm_mr_sg_pi()
2792 mr->mmkey.ndescs = 0; in mlx5_ib_map_mr_sg_pi()
2848 mr->mmkey.ndescs = 0; in mlx5_ib_map_mr_sg()