Lines Matching defs:mmkey

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