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