Lines Matching refs:mmkey

128 	WARN_ON(xa_load(&dev->odp_mkeys, mlx5_base_mkey(mr->mmkey.key)));
130 return mlx5_core_destroy_mkey(dev->mdev, mr->mmkey.key);
763 err = create_cache_mkey(ent, &mr->mmkey.key);
772 mr->mmkey.key = pop_stored_mkey(ent);
776 mr->mmkey.cache_ent = ent;
777 mr->mmkey.type = MLX5_MKEY_MR;
778 init_waitqueue_head(&mr->mmkey.wait);
1090 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen);
1095 mr->mmkey.type = MLX5_MKEY_MR;
1096 mr->ibmr.lkey = mr->mmkey.key;
1097 mr->ibmr.rkey = mr->mmkey.key;
1132 mr->ibmr.lkey = mr->mmkey.key;
1133 mr->ibmr.rkey = mr->mmkey.key;
1185 mr->mmkey.rb_key = rb_key;
1271 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen);
1276 mr->mmkey.type = MLX5_MKEY_MR;
1277 mr->mmkey.ndescs = get_octo_len(iova, umem->length, mr->page_shift);
1282 mlx5_ib_dbg(dev, "mkey = 0x%x\n", mr->mmkey.key);
1320 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen);
1412 mlx5_ib_dbg(dev, "mkey 0x%x\n", mr->mmkey.key);
1475 err = mlx5r_store_odp_mkey(dev, &mr->mmkey);
1568 mlx5_ib_dbg(dev, "mkey 0x%x\n", mr->mmkey.key);
1572 err = mlx5r_store_odp_mkey(dev, &mr->mmkey);
1611 if (!mr->mmkey.cache_ent)
1620 return (mr->mmkey.cache_ent->rb_key.ndescs) >=
1827 if (mr->mmkey.cache_ent) {
1828 xa_lock_irq(&mr->mmkey.cache_ent->mkeys);
1829 mr->mmkey.cache_ent->in_use--;
1834 ent = mkey_cache_ent_from_rb_key(dev, mr->mmkey.rb_key);
1836 if (ent->rb_key.ndescs == mr->mmkey.rb_key.ndescs) {
1841 mr->mmkey.cache_ent = ent;
1842 xa_lock_irq(&mr->mmkey.cache_ent->mkeys);
1848 ent = mlx5r_cache_create_ent_locked(dev, mr->mmkey.rb_key, false);
1853 mr->mmkey.cache_ent = ent;
1854 xa_lock_irq(&mr->mmkey.cache_ent->mkeys);
1857 ret = push_mkey_locked(mr->mmkey.cache_ent, false,
1858 xa_mk_value(mr->mmkey.key));
1859 xa_unlock_irq(&mr->mmkey.cache_ent->mkeys);
1875 refcount_read(&mr->mmkey.usecount) != 0 &&
1876 xa_erase(&mr_to_mdev(mr)->odp_mkeys, mlx5_base_mkey(mr->mmkey.key)))
1877 mlx5r_deref_wait_odp_mkey(&mr->mmkey);
1880 xa_cmpxchg(&dev->sig_mrs, mlx5_base_mkey(mr->mmkey.key),
1911 mr->mmkey.cache_ent = NULL;
1913 if (!mr->mmkey.cache_ent) {
1930 if (!mr->mmkey.cache_ent)
1971 err = mlx5_ib_create_mkey(dev, &mr->mmkey, in, inlen);
1975 mr->mmkey.type = MLX5_MKEY_MR;
1976 mr->ibmr.lkey = mr->mmkey.key;
1977 mr->ibmr.rkey = mr->mmkey.key;
2095 err = xa_err(xa_store(&dev->sig_mrs, mlx5_base_mkey(mr->mmkey.key),
2234 err = mlx5_ib_create_mkey(dev, &mw->mmkey, in, inlen);
2238 mw->mmkey.type = MLX5_MKEY_MW;
2239 ibmw->rkey = mw->mmkey.key;
2240 mw->mmkey.ndescs = ndescs;
2251 err = mlx5r_store_odp_mkey(dev, &mw->mmkey);
2260 mlx5_core_destroy_mkey(dev->mdev, mw->mmkey.key);
2272 xa_erase(&dev->odp_mkeys, mlx5_base_mkey(mmw->mmkey.key)))
2277 mlx5r_deref_wait_odp_mkey(&mmw->mmkey);
2279 return mlx5_core_destroy_mkey(dev->mdev, mmw->mmkey.key);
2336 mr->mmkey.ndescs = 1;
2389 mr->mmkey.ndescs = i;
2422 if (unlikely(mr->mmkey.ndescs == mr->max_descs))
2426 descs[mr->mmkey.ndescs++] = cpu_to_be64(addr | MLX5_EN_RD | MLX5_EN_WR);
2436 if (unlikely(mr->mmkey.ndescs + mr->meta_ndescs == mr->max_descs))
2440 descs[mr->mmkey.ndescs + mr->meta_ndescs++] =
2456 pi_mr->mmkey.ndescs = 0;
2490 pi_mr->mmkey.ndescs * ibmr->page_size +
2521 pi_mr->mmkey.ndescs = 0;
2556 mr->mmkey.ndescs = 0;
2612 mr->mmkey.ndescs = 0;